Hidden in Plain Sight?

I took a week off and stayed in a quiet place on a small lake in the alps. Hiking, reading, thinking, ... At one evening in the twilight time, I made this picture with my iPhone. Dark, reflecting water, reed, and the vague view of hills and mountains (BTW, in reality it was a fantastic tuning).
But I did not see the water birds in the reed, and especially the quick-diving grebes hunting small trouts, chevalier, .. and not the pikes hunting small perches, .. All I could see in a sunny moment, was hidden in the dark? No, I saw the grebes when they came to the surface, a silhouette.
What if this was my only view? And I remembered Umberto Eco: "It is important what we know, but much more important is, what we do not know".
How about mathematical software? Is a black-box principle enough? Input/Output? No, a good mathematical software needs black-box and white-box principles well designed. Symbolic and numerical computation integrated. Like Mathematica.

High-Performance Computing

To valuate 500 moderately complex financial instruments, with an average of 10 sec / instrument valuation, across 1000 historical change scenarios took 60 days on a single-core CPU. To make this in a coffee-break requires a speed-up of 10.000.
To achieve this you need to optimize your data structures and algorithms and you might be ably to get significant speed-up by outsourcing special algorithms on GPU co-processors, but you need to distribute your load.
With imperative programming languages (C++, Java, ..), concurrency can only be exploited by writing programs with multiple threads of execution. High-performance multithreading is hard in those languages.
In functional programming languages it is easy.
Mathematica 7's built-in parallel computing represented in its parallel declarative (functional) programming langage is perfect for symbolic, coarser-grain parallelisation. Its extension gridMathematica makes use of pools of network-managed multi-core-multi-compute-node of any scale. It optimizes for the latest hw platforms and you can create minimalist HPC infrastructures.
The valuation of a portfolio:
1. Valuate each portfolio member, an instrument instantiation
2. Accumulate individual instrument prices to obtain the portfolio value
Using a pseudo Mathematica Notation, it looked like this
portfolioValue = Apply[Map[portfolio, Valuate]Accumulate]
where Valuate in real Mathematica Code represents the generic interface to the valuation of ALL deal and instrument types in UnRisk.
To parallelise we changed to
portfolioValue = Apply[ParallelMap[portfolio, Valuate]Accumulate]
That's it? Yes, that is it about. A few lines of code with enormous impact.

WWWW

Oh yes, "it" is on the web. And I can find it. And with Wolfram Alpha I can get deeper insight by computation.
But here are the pages, which I access frequently and where I have have subscribed the printed.

Wolfram for in depth understanding of Mathematica and Wolfram technologies
Wilmott to join the most advanced and diversified space for the quantitative finance community
WIRED for left-and-right-brain-half inspiration from "Technotopia", what is expired, tired, or wired
Wallpaper for right-brain-half inspiration in Design-Interior-Fashion-Art-Lifestyle rooms

The Internet Of ...

For years now there is a discussion on the internet-of-things, autonomous and intelligent entities or virtual objects shall interoperate online, I say, speak over the web as we speak over the web. Alliances are built to promote the use of smart objects, like ipso .
Take weather forecast. At the moment the quality of the forecast on local weather is, among other criteria, dependent on the density of sensors with information on concrete model parameters. Provided each building, ... was equipped with a hundred sensors for local energy optimization, sensor output could be used for better forecast of the micro-weather and better forecast helps to get better energy optimization. Globalized, the internet-of-energy would be tied together with the internet-of-weather, ...
What about an internet-of-finance? interent-of-biology? internet-of-chemical-engineering, ....
You need an immense complex web of, massive data and computational knowledge, automated model and algorithm selection, map and reduce mechanisms, syntax unifiers, ...
Isn't Wolfram Alpha the platform we have waited for to exactly do this: create Internets-Of .. ?

p.s. I am biased, because with our work in quantitative finance, we see that UnRisk has the right solvers for valuating the most sophisticated deal types in portfolios over scenarios, but its correct results might get lost in the jungle of unreliable data and result aggregation.

Wolfram Alpha in Wired

Wired Magazine Jun-09. Steven Levy, "The Answer Engine". Wolfram Alpha creates awareness. Many commentaries have been written in the press. Many of them underestimate its real power, the paradigm shift, comparing to Google. Wiki, ..
IMO, very shortened Google is "know where ..?", Wiki is "know what ..?", Wolfram Alpha is "know how ..?".
I like Steven levy's commentary on Wolfram Alpha. And it reminds me that it was Steven Levy's book Artificial Life (early 90ies!) - A report from the frontier, where computers met biology that inflamed my interest in evolutionary programming and swarm intelligence (swarm approaches should have been adopted to financial risk management to expose not only credit, market. liquidity, ... risk, but also bubble-building by correlated high-volume-high-velocity deals and greed and fear should have been modeled as co-evolutionary system ?).
Not surprising that first AL implementations were in Prolog, LISP,.. but Steve Levy has at this time recognized the importance of Stephen Wolfram's ground-breaking work on Cellular Automata (leading to NKS ) AND the computational foundation for all type of more or less complex systems, Mathematica !

Mathematica Conference 2009

Not in our role as Mathematica remarketers, but as users and developers we attend the International Mathematica Conference since its beginning. It is a 3-day open forum on Mathematica and its development. We always enjoyed to get insight and views, experience the latest solutions and technologies, but also meeting Wolfram experts and other expert users personally.
We also have been active as presenters of the application of the latest Mathematica technologies in UnRisk and machine learning framework . On the photo you see Sascha Kratky (hands on the keyboard), our Senior SW Engineer, showing Stephen Wolfram the latest UnRisk FACTORY technologies.
We are very much looking forward to attending the 2009 conference.

mlf 2.0 Grid-Enabled

Recently, we took mlf 2.0 to data mining teams, which want to apply comprehensive multi-method machine learning providing access to their multi-core power. Mlf 2 was enhanced by new functions which allow parallell data mining tasks; the cross-model-validation and the run of the Model Explorer. Kerne methods include now Support Vector Machines and Gaussian Process Regression and a feature that allows the integration of user defined algorithms, new meta-learning algorithms for feature selection, boosting and mixtures of experts. It also adds modeling of time series data. This functionality extends mlf's vast variety of methods for supervised and unsupervised learning, with methods empowered by Fuzzy Logic to make models like decision trees and rules not only understandable but also computational.
Mlf 2 exploits Mathematica 7's built-in parallelism which increases the power of mlf by adding extra computational kernels either Local in a multi-core computer or as Server in a network-managed pool of computational kernels. It is set up to allow seamless scaling to networks, clusters, grids and clouds.
Find buggy parts of software by machine learning? Which data sources? Which methods? As result of challenging investigations on large industrial systems. The best combination in the picture above: static code analysis and fuzzy-ID3 in mlf.

Courseware Builder

Why is Mathematica ideal for building courseware for not only Mathematics, but Physics, Chemistry, Engineering, Quantitative Biology, Quantitative Economy, ... on any level? It can instantly make lectures interactive, easily create dramatic graphics, include massive real-world data, use a wealth of resources and create dynamic arrangements for guided and self-paced learning, embedded in future-looking course management systems in local and open and distance environments.
But still, what are the right didactic concepts? IMO, the first decision to be made: teach computer mathematics and not mathematics. Apply learner-centered approaches based on explorative constructive learning principles.
If our aim is to help students to become competent, autonomous acting experts in their field of practice we must give them the opportunity to behave as competent and autonomous as learner too.
Therefore our courseware shall try to construct learning situations by addressing individual motivation and pre-knowledge, starting each learning unit with real-life problems, explain the central concepts and give as much space for individual acquisition and experiments as possible, apply further examples for applications and strengthening of newly gained knowledge, emphasizing on limits, pathological cases, traps, .., as well as self-assessment facilities with qualitative feed back.
Courseware builders enjoy Mathematica's vast variety of solvers, demonstration capabilities with dynamic visualisation, expression manipulators as well as assistent palettes (see picture), but probably not as common in these circles: the ability to declare and apply any transformation rule in Mathematica allows for implementing white-box problem solving steps for solution checkers with qualitative feed-back in self-assessment environments. 

Mathematica 7 Combines

1990, I decided for Mathematica (on the transition from version 1 to 2) as universal technical platform and to bind my business strategy exclusively to it. The first was easy. The latter, early thus risky? I have experienced competitive systems in applications and even resold them. Finally, I was highly convinced that Stephen Wolfram will transformed his vision into reality. 
I was always passionate about new technologies, whilst serving customer needs individually. Serving customers first, you need to  be quick, but not dirty. More than that I do not only want to offer value and benefit of systems, solutions and benefits, but customers-and-centers-of-excellence  connections.
We are certified Mathematica remarketers for nearly 2 decades now, but also developers of large scale Mathematica solutions.
Mathematica developed into a universal single-source platform with integrated symbolic and any-precision numeric computation, with a vast variety of functions and algorithms, visualization of anything, integration of massive computable data, a declarative programming environment, system integration support by link technologies for building hybrid systems. All supported by Wolfram Workbench for large scale project development with Mathematica, Java, ... Mathematica also offers a wide range of deployment options starting from its documentation-centered approach with a player family to web based services and front-ends. Users and developers enjoy interactive help and documentation.
Mathematica 7 comes with built-in parallel computing facing the multi-core revolution of computers. With gridMathematica  adding extra computation kernels in a networked pool of core processes with automated distribution and load balance tool.
I am highly committed to serving our Mathematica customers with my best efforts and knowledge, whilst driving generic technologies. 

It is All Numbers

I remember a statement of a physicist, "there is no reality, only numbers", which made me brooding.
In Mathematics we have special functions, symbols we know by name, meet quite often, know their form, shape and behaviour. From the simple Sin, Cos, Exp, .. to the Meijer G-Function, which is very general. Some of them are good friends, we can artistically create derivatives, integrals, .. when they dominate in expressions, equations and use them as Ansatz for, say, solving differential equations. New special functions expand the domain of closed form solutions. 
Closed form solutions are elegant, but usually they do approximate only small domains. In the vast majority of the cases you need numerical schemes to make the predictions and simulate your models. 
To model, say, the material flows, chemical reactions, and conservation of  energy in, say, a blast furnace you need to solve systems of dozens of coupled nonlinear PDEs. They need to be solved numerically.
Mid 90ies, I entered into partnership with MathConsult  specialized in the sw development of advanced numerical schemes. In 1996 we were lucky being asked to develop some convertible bond tools for a London-based trading desk. Andreas Binder, CEO, of MathConsult managed to design a model solver based on Adaptive Integration in a one day workshop; a method based on Green's functions and an adaptive gridding and time-stepping. 
When we decided to make UnRisk, we decided to integrate high-end numerical schemes into Mathematica and combine strengths of symbolic and numeric computation.

I Declare ...

Mid 70ies, starting my career at voest alpine, first developing an off-line programming system for CNC machine tools, I became finally responsible for "Factory Automation Software". Factory automation is about transforming rough material into finished parts, assemble and finish them. 
Machine and robot programmers did not want to program imperatively, by  "Goto XY", "Mill Circle", but declarative by "Mill Pocket", "Drill Cycle", "Pick Part", "Place Part" .. To providing such high-level, task-oriented programming techniques, our compilers and runtime systems needed to calculate a lot of coordinates, paths, kinematic and dynamic system behaviour implicitly and make manufacturing decisions related to machine models, tools, .. based on strong reasoning. 
In the 70ies, Assembler-->FORTRAN-->CNC-Language--->Part-Manufacturing Languages were a matter of develop-compile-go cycles.
In modern declarative environments we can think of language extensions, kernel extensions, link structures and plug-in API's. Mathematica is built by C++, but UnRisk is built on top of Mathematica extending Mathematica's declarative environment into the universe of financial derivatives and risk analytics. In UnRisk users declare  "Instrument-Groups", "Contract-Features", "Pay-Offs", "Scenarios" and use one super-function "Valuate" that acts as generic interface for all valuations.  Developers, say in interest rate research of a bank, can build their environment on top of UnRisk. The development cycle becomes compute-develop-deploy.
It is my strong belief that the choice of such techniques will drive "domain-specific languages" in all type of domains, from biology to finance.

Symbolic Parallelisation

In 1989, I found STRAND 88, a parallel declarative language for writing programs that was portable across a broad range of parallel computers. A key language feature made it possible to interface to C. I wanted to understand the principles,  limitations and traps of parallel declarative programming in early stages. One of STRAND's objectives was to specialize on symbolic computation. Consequently, I conducted a trial-project: parallelization of a symbolic computation library, written in C, by STRAND 88 (performed at RISC). STRAND worked very well. But at that pioneer time parallel computation had a babylonian mix of architectures, sytems, middleware ad languages. Finally STRAND went from the market. They were too early?
Mid 90ies, I had the great luck to start a cooperation with Roman Maeder (now Director of HPC at Wolfram). In 1998, he developed the Parallel Computing Toolkit for Mathematica, the base of gridMathematica now on version 7  . It now extends Mathematica 7 wich has built-in parallelism. Its Leightweight Grid Manager, makes it easy to manage a networked pool of remote computation kernels.
But the core of Roman's tool is symbolic parallelism, making Mathematica's unprecedentedly clean-designed declarative language, a parallel declarative language. It enabled us to parallelize the machine learning framework and UnRisk in a few lines of code and to test parallelization approaches across scenarios for speed-up maximization.

A Theorem Prover that Computes?

Why do we want to prove a theorem? Because we are lazy. We do not want to test infinite many cases, we want verification for all cases at once. The objective of Bruno Buchberger's Theorema project is to let the computer construct the proof. An automatically generated proof of the shown theorem, see here . The proof is white-box (readable) and it uses an external operation (Simplify) provided by Mathematica. Theorema is built on top of Mathematica. We could have done this proof easily by hand, but if we look at the Nontrivial Example... ? The long-term objective of the Theorema project is to produce a complete system which supports the mathematician in creating interactive text books. This covers the mathematical problem solving cycle including specification, exploration, creating ideas, proving and programming.
Programming? Simplified, the constructive proof that the Groebner Bases are result of correct equivalence transformations (of the original system of polynomials) is a program which computes them. The automatically generated proof is computational.
To my knowledge, Mathematica was selected for Theorema because it allows to define your own syntax, its pattern matching mechanism and comprehensive solvers.

The Petabyte Age

The scientific approach: you have a hypothesis and test it. Modeling:  approximate reality by mathematical expressions. You are lucky if you can transform your model into a closed form solution. They are usually easy to interprete and compute. If not you apply numerical schemes. Advanced numerical schemes need to be accurate and robust related to noisy input.   
The other extreme. Extract models from data. We have sensors everywhere, "Infinite" storage, clouds of computers. Wired magazine takes an extreme position in The End of Theory The Data deluge makes the scientific method obsolete. 
Far from that, IMO. But, in some sense one can understand mathematics as data compression (those who correctly state mathematics-is-a-culture-technique will disagree). And in the petabyte scale, information is often a matter of  multi-dimensional order. But still you need analytical tools, which at least have "learned" from mathematics. However better data and better analytical tool together with plugged mathematics might win the day. Remember? The AND effect.
What we do in machine learning and data mining: mlf

Eliminate Quantifiers

Later 80ies. I met George E Collins (University of Madison - cooperating with RISC). His research field: Quantifier Elimination for Real Closed Fields by Cylindrical Algebraic Decomposition. His research team developed a system. The objective: ask a question like "For all Circles C1 and C2, is there an intersection point P12 of C1 and C2?" and get an answer showing the conditions (no-1-2) and how to calculate (a closed form solution).
Mathematics is quantifier elimination? When you write an equation, you have in mind to solve it. And even if you do not explicitly ask it, you might have "Is there, so that ..?", "under conditions ?", with constraints ?", ... in mind. To answer such questions, you need an input interpreter, a mathematical knowledge base, a computational engine and a result reporter?
Over 20 years later, Wolfram has introduced Wolfram Alpha the computational-knowledge engine. Fruit of challenging research, a clear concept carried by a symbolic language to represent anything and the algorithmic power to do any kind of computation, Mathematica!, and massive data. And it takes questions people ask in natural language, suppressing the "Is there..?", "under conditions?", "which constraints?".... NOT a search engine. NOT a content representation. A computational-knowledge engine, If you want, a general quantifier eliminator?  

Dance with Symbols?

Early 70ies. I started my math studies at JKU in Linz. Great luck that Bruno Buchberger started to teach there. He was (one of) the most influencing researchers of Symbolic Computation. It fit perfect into my interest: Algebra.
In brief SC deals with the manipulations of symbols, like mathematical expressions, geometrical objects, logical expressions, molecule structures, electronic circuits ... or even programs by computers. Bruno's Groebner bases are a perfect example of the requirement to dance with symbols: you solve a linear system by manipulating the base and bring it into a convenient form ("triangulation"). Manipulation by arithmetic. Bruno generalised this for polynomial rings (instead of base vector, he needed to deal with special ideals and complex elimination properties). Manipulate means transforming algebraic symbols. 
In non Mickey-Mouse cases, finding such a base without a computer is "impossible". Bruno: Mathematics is (only) essential, if you can do it by computer. I say, PLUGGED. 
Mathematics and computer science? Abstract data types are related to universal algebras. In a Ring (R, +,*), +,* are operations which results stay in-house. They encapsulate. All instances inherit Ring properties. And implementations of  +, * are independent of the interface (polymorphism). In my master thesis I studied "Free Algebras". They represent the language aspect of Algebras. The interface.
After my studies I made a career in factory automation. 1987 Bruno founded RISC . Factory automation deals with geometry, machine operations, robot tasks, operation, production and risk management, .. technical objects which are manipulated by programmable technical systems. I cooperate with RISC from the beginning. 
This influenced not only my problem solving capacity but my way of thinking. And finally my business life.

Numbers or Symbols?



I start this Blog with a reference to Pau Wilmott's Blog Numbers People and Symbols People. Paul is one of the most influencing quantitative analysts, in his blog he discusses the ability of people to handle abstractions.
But let me go back. When I studied Math in the early 70ies, I learned already about Symbolic Computation. In SC computers shall be able to manipulate and operate symbols, like mathematical expressions, geometrical objects, molecule structures or even programs. To manipulate and operate symbols needs a special language, the language of Mathematics. If you think of questions like "for all N, is there a K, so that sum (i, 1, 2, ..., N) = K?", the answer is "yes, K=N*(N+1)/2". If you do not want to verify this  across infinite many cases you ned a proof. This part of mathematics has to do with Quantifier Elimination. Solutions are in close form, if all quantifiers are eliminated. Close form solutions are exact and convenient. BUT, they usually only describe a small world. 
SC systems I used at that time: Mathematica, Maple, Macsyma, Derive, ... I was responsible for factory-automation software at Austria's largest industry enterprise and prototypically applied them in  robot and CNC programming and simulation.
1990, I met Stephen Wolfram, when he was on a world tour and I co-organized a talk in front of 400 people at the University of Linz. Fortunately I found out quickly that Stephen's Mathematica is the (only) adequate implementation of the language of mathematics with a declarative layer for programming and a representation of all symbols in unified expressions for unambiguous evaluation.
At this time, I launched my own company with the objective of creating innovative solutions on top of Mathematica.
But as mentioned, many problems cannot be transformed into closed form solutions. They need to be treated numerically. Good numerical schemes fit well along domains where close form solutions are available and do not lose this accuracy and robustness  "in between". MathConsult (Andreas Binder, CEO) is renowned for accurate and robust numerical solutions of the most complex technical problems.
When such numerical schemes are integrated into Mathematica, the solution inherits from Matematica its full declarative environment, visualisation, link technologies, ... and Mathematica's functionality is extended. UnRisk is such a solution.
So, it is Numbers AND Symbols. I will come back to this AND-effect.