SequenceL At A Glance: Is / Is-Not
The Smart Modern Approach for Multicore Performance
SequenceL is a modern, functional, declarative language and very smart auto-parallelizing compiler designed by math people for math and science people. In SequenceL, you describe the desired output in terms of the input, as functions; i.e.- declare only “what” to compute, not “how” to compute it as with common procedural programming languages that mimic old single step CPU hardware, (e.g.- C/C++, C#, Java, Python, Fortran). This algorithmic code is then compiled and leverages a platform-specific runtime engine to handle parallel execution, vectorization, cache optimization, and other low level features of the target multicore platform.
The widely used SQL declarative database language is analogous to SequenceL. Rather than write simple and clear SQL commands, programmers used to write their own database procedures in low level programming languages. This was unproductive, error-prone, and did not perform as well compared to a high performance commercial SQL database engine.
The same is true for applications using SequenceL vs. traditional low level languages for modern multicore hardware platforms. SequenceL is a powerful tool to explore different algorithms and innovations then quickly convert them to robust, performant production code that runs optimally on all popular modern hardware platforms.
Matlab on Steroids!
|An easy means of turning algorithms into robust, race-free, massively parallelized (and vectorized) C++ and OpenCL code||A “silver bullet” compiler attempting to solve the “dusty deck” problem (e.g.- unachievable "black box" that auto-magically converts old serial code into modern parallel code)|
|A true integrated solution that includes high abstraction language, IDE, debugger, interpreter, auto-parallelizing compiler, and platform-specific runtime environment||Like all the other "point tools" pursuing the multicore market that leave the hard work to users|
|A patented self-parallelizing toolset that unleashes full multicore performance||A multicore or MPI code profiler|
|Used to create multicore libraries and applications||Yet another set of math libraries|
|Built on open industry standards||A multicore debugging or testing tool|