Maximum Performance Through Parallel Execution
By overcoming the traditional obstacles to parallel computing - costly
hardware, programming difficulty, and lack of code portability - SCAI's
Linda has become a powerful fulcrum for competitive advantage in many industries,
from aerospace and automotive to
Linda provides a simple, yet complete command set which enables process
creation, synchronization and communication. Every Linda software system
employs powerful application optimization techniques and carefully tuned,
architecture-specific run-time systems. Users benefit from, but are not
concerned with, low-level details of different machine architectures or
The Linda Model
Linda is a coordination language which supplies the "glue"
needed to cement many independent processes together into a single parallel
program. Linda provides a virtual shared memory (VSM)
that is logically shared by all the processes in a parallel program.
Processes in a Linda parallel program execute simultaneously and exchange
data by generating, reading, and consuming data objects in the VSM using
four basic operations:
- "out" places data into VSM
- "in" retrieves data from the VSM, simultaneously removing
the corresponding data object
- "rd" copies data from the VSM without removing the corresponding
- "eval" used to create processes
Any program written in C or Fortran can be parallelized using these
simple Linda operations.
Linda leaves to the base programming language the chores for which such
languages were designed--arithmetic, loop control, procedure handling, and
I/O -- while automatically and transparently handling the operations required
to support many independent processes operating in parallel. As a result,
parallel codes can often be deployed more rapidly and with less code modification,
than with more time-consuming, low-level approaches to program conversion.
Linda Virtual Shared Memory Systems:
- Target homogeneous and heterogeneous networks of UNIX workstations,
as well as shared or distributed-memory UNIX multiprocessors.
- Have extensive compile and runtime optimizations to maximize parallel
- Include easy-to-use tools for code development and debugging
- Are simple to deploy