With GAUSS 9.0, you have the tools that you need in order to harness the power and speed of multi-core, multi-processor, and hyper-threaded systems! GAUSS 9.0 introduces new functions for multi-threading your programs.
Another important addition is increased array support in more intrinsics and operators. This allows you to seamlessly use arrays in more of the operators and intrinsic functions.
The new threading functions enable you to define independent sections of your program that will run at the same time. These threads share the same workspace and can access all of the same symbols, procedures and keywords. You can create as many threads as you want, allowing you to take advantage of as many processors as you have.
Features and Enhancements
New threading functions
ThreadStat
ThreadBegin
ThreadEnd
ThreadJoin
Additional support for string arrays
By making use of threads in your code, you can take better advantage of the available processors on your machine. Dividing your code into multiple threads that run simultaneously can reduce the overall processing time of your programs.
Below is an illustration that shows one thread set with four threads, two that are blocks of code set off by ThreadBegin and ThreadEnd, two that are single lines of code using ThreadStat. Each thread processes at the same time as the other threads. Your program waits at the ThreadJoin command for all threads to finish. When the threads have completed, your program continues, making use of the work the threads have done.
In the example above, this block of code could potentially run nearly four times faster on a quad core machine because the threads are running simultaneously.
Threads can be created virtually anywhere--in the main code, in procedures, and in keywords. You can also create threads within other threads. This means you can multi-thread nearly anything you want and call it from anywhere in your program. You can multi-thread some or all of the procedures and keywords in your libraries and call them freely anywhere in your multi-threaded programs.
Platforms
Available now for Windows (32-bit); additional platforms to come include LINUX (32-bit and AMD 64-bit), Sun SPARC (64-bit), Windows (64-bit), Mac OS X (32-bit and 64-bit), and HP UX 11.