Overview of Elepar’s (David C. DiNucci’s) 3 Primary Technologies
ScalPL, CDS, and PICA (under those or previous names) are the three primary technologies developed by David C. DiNucci (subsequently identified as DCD) over many years. This page set describes them and their history/lineage.
DCD was the primary investigator in all cases, often independently or under Elepar (“ELEmental PARallelism”, his company), but some work was motivated or aided by others and other organizations (e.g. Babb’s LGDF at OGI for ScalPL, the MPI forum for CDS, and the NASA IPG work for PICA),
The order of their description here relates to the order in which their development began, and therefore roughly their level of maturity and investment, with ScalPL being DCD’s primary focus over the entire time (and still).
ScalPL (Scalable Planning Language)
- Description:
Powerful high-level graphical language for engineering portable efficient correct scalable programs,
plans, and algorithms from components (e.g. sequential), facilitating exascale
- Former names: Software Cabling (SC), EDPL, Large Grain Data Flow 2 (LGDF2)
- Related projects: NASPACT, l23, F-Nets, CDS
- Status: Defined, graphical editor (l23) implemented, no further language tools yet, still active
- To learn more
- History/Timeline
Cooperative Data Sharing (CDS)
- Description:
API for portable region-based communication substrate, as would be used by ScalPL
- Related Projects: BCR (older version, implemented)
- Status: BCR implemented over sockets, full CDS just documentation/definition
- To learn more
- History/Timeline
PICA (People, Instruments, Computers, and Archives)
- Description:
Framework for integrating grid/cloud resources
- Related Projects: NASA Information Power Grid (IPG), Abstract Owner (AO) former subset
- Status: High-level design, paper
- To learn more
- History/Timeline
These constitute parts of an overall solution, with ScalPL being the primary user interface, CDS being a supporting substrate for ScalPL runtime, and PICA being a means to allocate and coordinate resources for execution, as illustrated in this diagram…