Message-passing in Heterogeneous Architectures

EETimes wrote that Complex Systems Need A Simple API page



We agree. The from is too complex. How to go to to?

>Two decades ago, embedded real-time processing for system modeling, simulation, image and signal processing often used scaled-down supercomputer architectures–a homogenous array of identical processors interconnected in a parallel, symmetric topology. Programming solutions for these architectures were initially fragmented, often using hardware vendor or microprocessor-specific software layers for communication between processing elements. >Over time, the need for portability drove the development of new open standards. For example, MPI (Message Passing Interface) evolved to enable developers to create high performance, scalable, and portable applications to run on these homogeneous, parallel architectures. >In the last ten years, new technologies, such as multi-core CPUs, DSPs, GPUs, and FPGAs, have provided orders of magnitude more embedded processing power. Today’s architectures are increasingly heterogeneous. >A modern system combining an FPGA, multi-core CPU, and powerful GPU can now replace a system that had tens to hundreds of processors a decade ago. This SoC technology can integrate multiple processing architectures on one piece of silicon with the performance to match that of a supercomputer of the late ‘90’s.

Perhaps a simple API is like bashing our heads against a wall trying to solve distributed systems problems in an ever changing system.

Could the issue be to separate the interface from the messaging-passing. Apparently this may require a finer-grade of capabilities found in object-capabilities:

Khronos Group created an exploratory group to determine the industry’s interest in developing a simplified open standard for embedded heterogeneous communications page

>Unfortunately, traditional programming models and open standards for communications between processing elements have lagged the HPEC hardware revolution. Interconnect topologies have become fragmented and more complex. No longer is there a clear, unified API that can drive all the new communication interfaces introduced by heterogeneous architectures.