SequenceL is a declarative, functional language that's geared to multicore programming; it provides automatic parallelization, and the compiler outputs C++ code. It was initially developed at Texas Tech University in partnership with NASA during a 20-year period for use in guidance, navigation, and control systems. Texas Multicore Technologies, formed in 2009, is now taking SequenceL to the commercial market at large. InfoWorld Editor at Large Paul Krill recently spoke with Doug Norton, Texas Multicore vice president of sales and marketing, about SequenceL and its abilities.
InfoWorld: How did SequenceL evolve to become a language for multicore programming?
Norton: SequenceL is based on two fundamental computational laws that are provably race-free: CSP and NT (Consume, Simplify, Produce, and Normalize-Transpose). What [developers] found when they added that last one, NT, was that these two computational laws were exposing thousands of parallelisms that were provably race-free. Then they kicked off an effort at Texas Tech to build a parallelized compiler to take all those parallelisms and implement them directly to C++. They chose C++ because that gave them the ability to run on any platform and leverage all the C++ tools out there and play nicely with C++, if you will, to interoperate where you could not have to rewrite an entire program. You could just take a piece of it, rewrite that in SequenceL, and run it through the compiler, and now you have massively parallel C++ for that portion of the code, which you can link right in with the rest of your C++ [code]. That work began in 2005-2006, to build that prototyping compiler.
Norton: You bet. It's a very compact language. It's only at about 15 semantics, versus 150-plus in Java.
InfoWorld: I guess you'd call SequenceL a proprietary language with proprietary tools. How do you get away with that in today's market when it seems like everything is open source?
Norton: All I can tell you is the benefits are so great that people get it. The time-to-market and the performance advantages are so great. The pricing is reasonable too. We're not trying to gouge people. We're trying to get it out there. But I get asked all the time, "Will you offer a freemium model or something like that?" I just don't believe we're set up to license it that way right now.
InfoWorld: Is SequenceL also applicable to multiprocessor programming, or are you just focusing on multicore programming at this point?
Norton: It is applicable. We've done some work in kind of a semi-automatic way using MPI (Message Passing Interface) -- the combination of MPI and SequenceL. In fact, a couple of months ago, we filed a patent. We call it a hybrid approach, but it's not fully automatic like it is with the shared memory multicore.
InfoWorld: Is there a limit to the number of cores you can distribute instructions on with this?
Norton: Nope. The more the merrier.
InfoWorld: So I write code with this, and it knows to distribute it around to different cores without having race conditions and locks and those sorts of problems?
Norton: That's right.
InfoWorld: Is this for any processor architecture?
Norton: It can be for any. We are unlimited. Currently, our focus has been on primarily x86-based systems, but it would be pretty simple to get this ported to [other platforms]. We only have to move the runtime.