Porta-SIMD: An Optimally Portable SIMD Programming Language

Abstract

An optimally portable language for a set of architectures must accommodate all the features found in the members of that sat. There was no suitable taxonomy to identify the features of SIMD (Single-Instruction stream, Multiple-Data stream) architectures. Therefore, the taxonomy created and used in the design of Porta-SIMD is presented. Porta-SIMD is an optimally portable, full-featured, SIMD language. It provides dynamic allocation of parallel data with dynamically determined size. Generic subroutines which operate on any size of data may also be written in Porta-SIMD. Some important commercial SIMD languages do not provide these features. A prototype implementation of Porta- SIMD has been developed as a set of include files and libraries used with an ordinary C++ compiler. This approach has allowed more rapid prototyping and language experimentation than a custom compiler would have, but modestly constrained the language's syntax. The result is a very portable but only moderately efficient implementation. Porta-SIMA has been implemented for the Connection Machine 2, for Pixel-Planes 4 and 5, and for ordinary sequential machines. Optimal portability is an important new concept for developing portable languages which can handle architectural diversity. Porta-SIMA demonstrates its usefulness with SIMD computers.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
May 01, 1990
Accession Number
ADA228676

Entities

People

  • Russell R. Tuck Iii

Organizations

  • University of North Carolina at Chapel Hill

Tags

Communities of Interest

  • Air Platforms
  • Biomedical
  • Energy and Power Technologies
  • Space

DTIC Thesaurus Topics

  • Application Software
  • Artificial Intelligence
  • Computer Architecture
  • Computer Program Documentation
  • Computer Program Reliability
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Content Addressable Memory
  • Hypervelocity Flow
  • Image Processing
  • Parallel Computing
  • Parallel Processing
  • Parallel Processors
  • Programming Languages
  • Two Dimensional

Fields of Study

  • Computer science

Readers

  • Parallel and Distributed Computing.
  • Software Engineering.