The Right Tools to Work Smarter, Not Harder
The days of programming in a one-size-fits-all language are quickly becoming a thing of the past, especially for modernizing software to properly support today’s multicore and many-core platforms. SequenceL is the right tool for this job, enabling programmers to quickly support all popular hardware platforms with optimal performance, addressing all the root issues facing programmers targeting these systems. SequenceL is a compact, powerful functional programming language and auto-parallelizing compiler that quickly and easily converts algorithms to robust, massively parallel code.
Best of all, SequenceL is built upon open industry standards and was designed to work in concert with existing programming languages, tools, legacy code and libraries. SequenceL is additive to current design flows, tools, and training. It extends these investments with a plug-in for the industry standard Eclipse IDE and support for popular programming languages (C/C++, C#, Fortran, Java, Python, etc.). Industry standard parallelized C++ and OpenCL output leverages all these investments while providing an easy, low risk path to modernize performance-critical portions of existing programs. This also makes it quick and easy to explore if your algorithms can benefit from (GP)GPU acceleration without learning special low-level GPU languages like CUDA or OpenCL.
Tools that can make parallel software easier to construct, efficient and faster in operation are gold dust – especially for the domain experts. An automated approach to software parallelism has become a necessity.Dr. Robin Bloor
SequenceL™ Development Environment
The SequenceL Development Environment makes it easy to develop and debug SequenceL programs on any platform using the popular Eclipse IDE (Integrated Development Environment). The SequenceL Eclipse IDE plug-in supports a rich set of features, including a language sensitive editor, color coding, breakpoints, inspection window, and integrated SequenceL interpreter and debugger.
The SequenceL Development Environment works on all platforms that support the Eclipse IDE, including Windows, Mac OS X, and Linux. Both User and Concurrent licensing options are available.
SequenceL™ Auto-Parallelizing Compiler
The SequenceL auto-parallelizing compiler is breakthrough software technology that automatically identifies all the safe opportunities for parallel processing in a SequenceL program and generates robust, massively parallel, vectorized C++ (and optionally OpenCL to support GPUs). This patented technology can even find fine-grain parallelisms, often where a programmer wouldn’t think they may exist or be worth the effort to code and test. This allows the programmer to focus on problem solving rather than worrying about parallelizing, race conditions, or target hardware details. In the case of systems with GPUs, the automatic OpenCL generation also averts the need to learn and incorporate low-level CUDA or OpenCL code and associated scaffolding. The SequenceL compiler produces robust, high-performance, architecture-independent, industry standard C++ (and optionally OpenCL GPU) code for the highest performance possible on multicore systems.
It is currently supported on x86 systems running Windows, Linux, and Mac OS X, and IBM POWER and ARM systems running Linux, with licensing on a User or Concurrent basis.
SequenceL™ Runtime Environment
The SequenceL Runtime Environment is the other key software component that allows SequenceL programs to take maximum advantage of target multicore platforms, now and in the future, without recompile. The Runtime Environment automatically identifies platform-specific capabilities (e.g.- cache architectures, SIMD vector instructions, how many cores are available, presence of GPU), allocates the workload appropriately to each core, and adjusts those allocations as the program runs to ensure all cores are being fully utilized.
It is currently supported on x86 systems running Linux, Microsoft Windows, and MacOSX, and IBM POWER and ARM systems running Linux, with licensing on a User or Concurrent basis.
Several high performance libraries are included with SequenceL. Both Utilities and Regular Expression libraries are provided as SequenceL source code to show best practices. Binary libraries for BLAS and LAPACK are also included. In addition, SequenceL can work with most any library (commercial or private) via its Foreign Function capability.