Parallelism
Parallelism updates:
Parallel Garbage Collector
Thread Local Remember Tables
Thread Local Data
Maple 17 introduces parallelism into its memory management system, resulting in performance gains at a low level that will benefit every large computation. Additionally, new programming constructs were added to make it easier and safer to write parallel code.
The garbage collector in Maple 17 now takes advantage of multiple cores, speeding up even serial operations. In addition, if you are running parallel code, the system takes better advantage of thread-specific memory management, leading to an overall increase in parallelism.
For more information, see Parallel Garbage Collector.
In Maple 17, procedures have different remember tables for each thread the procedure is executed on. When a procedure with a thread local remember table is executed in parallel, modifications to the remember table will not lead to thread safety issues. This change makes it easier to write thread safe functions that make use of remember tables, especially when direct manipulation of the remember table is required.
A procedure with a shared remember table, one that is shared between threads, can still be created by passing option shared to the procedure. This provides the same functionality as previous versions of Maple.
For more information, see Thread Local Remember Tables.
In Maple 17, module local variables can be declared thread local, meaning that they store a different value for each thread that access the variable. This allows for complex algorithms that need to maintain state to be written in a thread safe manner.
For more information, see Thread Local Data.
See Also
Index of New Commands and Packages in Maple 17
Maintaining a thread local state
Option remember in Procedures
Download Help Document