A PARallel LANguage for Symbolic Expression for 80x86 Symmetric Multiprocessors under Windows
PARLANSE is an inherently parallel programming language designed to support computationally expensive symbolic applications requiring medium grain irregular parallelism (~100 to ~1,000 machine instructions) while providing robustness through efficient error handling.
Application areas:
- Symbolic computation e.g., formula manipulation or symbolic simulation
- Program Analysis and Transformation systems (e.g. DMS)
- Expert systems e.g., parallel symbolic inference
- Optimizing compilers e.g., symbolic analysis
- Runtime systems requiring high performance e.g., low overhead error recovery
- Data mining e.g., massive irregular data in parallel query evaluation
Language features:
- Conventional language facilities:
- Strongly typed data, arithmetic, variables, intrinsic UNICODE character set
- Safe pointers, dynamic allocation from memory pools, bulk release of memory pool
- Assignments, conditionals, loops, functions, procedures, parameters
- Lambda constants, lexical closures
- Software engineering support:
- Parameterized exceptions, "try" and exception recovery clauses
- Type declarations with range constraints and data assertions
- Structures, modules and namespace management
- Compile time, run-time, and debug time assertions
- Explicit declaration compile-time checking of side effects
- Parallelism:
- Extremely fast grain scheduling (tens of machine instructions)
On 2 cores, PARLANSE applications outperform equivalent (Windows native) threaded C programs by factor of 2) - implicit functional parallelism>
- Explicit parallel, concurrent, and static partial-orders
- teams of dynamically generated grains
- "fair" scheduler allows development on uniprocessor systems
- Intrinsic synchronizing primitives: semaphores, futures, grain abort
- Efficient exception management tightly integrated with parallelism (zero overhead for normal path execution)
Target Execution Environments:
Currently 1-32 processors SMP Windows 2003-Windows 10; parallel-tested with Wine under Linux.
- Shared address space for grains
- Uniprocessor to 10s of symmetric multiprocessors (A.D. 2016 workstation)
- Access to underlying native O/S calls via foreign function interface
Additional Information:
PARLANSE is in everyday use for the construction of DMS. SD is presently looking for other adopters.
PARLANSE R&D was funded by the National Institute of Standards and Technology, Advanced Technology Program