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
- 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 (10’s of machine instructions)
PARLANSE applications outperform equivalent (Windows native) threaded C programs by factor of 2) - Explicit parallel, concurrent, and static partial-orders; implicit functional parallelism ("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 Pentium Pro under Windows 2003, XP, and later operating systems,
- Shared address space for grains
- Uniprocessor to 10s of symmetric multiprocessors (A.D. 2001 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 early adopters.
PARLANSE R&D was funded by the National Institute of Standards and Technology, Advanced Technology Program
