HPC CONVERGENCE AND THE HOLY GRAIL RAPID PROTOTYPING



In the field of High Performance Computing (HPC), there is a constant and obscured debate between the old traditional toolkit users of Fortran, Cobol, Java and .NET, representing the collective corporate / enterprise and academic / government laboratory sectors of the HPC world, and the modern rapid prototypers using web stack environments of Rails, Clojure, Go, Django, and the myriad Javascript web frameworks. In practice, however, the true debates aren’t aired, because they exist in completely separate worlds: the dotcom 2.0/3.0 new generation of the west coast and the traditional rapid prototypers of the IT/defense/enterprise world.

The new generation equips themselves with modern tools, including Ruby on Rails, Django, and jQuery without pause. Meanwhile, the traditional rapid prototypers equip themselves with the tools of .NET, Fortran, Java, and other “interpreted languages”; to this community, anything that isn’t C or assembly is a shortcut (C++ is for the lazy).

Enter the brave new world.

In the spirit of the old DARPA research conducted as part of the “High Productivity Computing” initiative, I propose a new framework for thinking about rapid prototyping. Instead of focusing on the languages themselves, I’ll focus on the cross-talk and intersections between languages. The result is what I’ll call the “holy grail of pragmatic computing” (aka rapid prototyping) – a development environment in which the fastest possible mockup of a concept can be delivered in a language-agnostic environment. This is only feasible if the proper collection of languages and API’s are known.

I argue that the language chosen for rapid prototyping matters far less than whether that language can tap into the multiplicity of optimized toolkits written in other languages. No one in their right mind writes hacking exploits in Clojure; no one writes high level number theory proofs in C; and no one writes graphic intensive games in Excel VBA.

I therefore hold the following truths to be self-evident by practitioners:

Excel is best environment for manipulating datasets less than a gigabyte large (aka most around today)
Clojure is the best environment for developing high level data transmutation and system block level algorithms
Python is terrible but has so many libraries and modules written for it, it has become unavoidably implicated in any prototype
Mathematica is the superior applied mathematic symbolic toolkit providing most immediate delivery of high end computational functions

The “truths” above will offend most programmers. If, however, you suspend disbelief and agree, the following matrix identifies the most useful tools around to enable this rapid protoyping:

Excel: Excel-REPL, XLWings, ExcelLink
Clojure: clj-excel, clojure-python, Clojuratica
Python: xlrd, Jython, call()
Mathematica: Import[], mathlink, Pythonika

Equipped with this simple matrix of cross-talk enabling APIs and tools to permit programs written in one language to utilize modules and libraries written in other languages, the modern programmer can achieve levels of efficiency optimization unthinkable to the former generation of developers.




XLP Capital is a family office and as such is not required to be registered as an investment adviser with the U.S. Securities and Exchange Commission. Investments are made available only to accredited, qualified, or institutional investors that are eligible as family office clients, pursuant to the rules of the U.S. Investment Advisors Act of 1940. XLP does not seek or solicit investment for these funds or any other funds, and nothing on this page should constitute a solicitation for investment. The descriptions on this page is provided for information value only, as examples of prior investment related work XLP has conducted. XLP Capital assumes no liability for investment losses direct and indirectly resulting from recommendations made, implied, or inferred by its research. Likewise, XLP Capital assumes no claim to investment gains direct or indirectly resulting from trading profits, investment management or advisory fees obtained by following investment recommendations made, implied, or inferred by its research. Investment involves risk, and all investments should be made with the supervision of a professional investment manager or advisor. The materials on the Website are not an offer to sell or a solicitation of an offer to buy any investment, security or commodity, nor shall any security be offered or sold to any person, in any jurisdiction in which such offer would be unlawful under the securities laws of such jurisdiction.