Arrays

One of the features that separates SIDL and BABEL from Microsoft's COM/DCOM and the OMG's CORBA is support for multi-dimensional arrays. SIDL is designed to serve the high performance computing community, so we anticipate that both SIDL object developers and object clients may require direct access to the underlying array data structure to try to optimize instruction pipelining or cache performance. The purpose of this document is to describe the functional API to the SIDL array data structure and the underlying data structures. This presentation will focus on the C API for arrays because it is the basis for the other language APIs, so they will likely reflect its idiosyncrasies.

There are two main kinds of arrays in SIDL: normal arrays and r-arrays. R-arrays are a specialized form of array for numeric types that has a simpler interface from C, C++, FORTRAN 77 and FOTRAN 90. Normal arrays are used for all SIDL types.

The SIDL array API and data structure can be used in client code to prepare argument for passing to a SIDL method, and it is used inside the implementation code to get data and meta-data from incoming arguments.

Normal SIDL arrays can be ``row-major'' or ``column-major''. They are not parallel array classes, and not particularly sophisticated, but they are very, very general. These are meant to generalize the array types built into many languages, not to provide a general array component that everyone will use. It is expected for parallel array libraries to build on top of the array type presented into SIDL.



Subsections


babel-0.10.2
users_guide Last Modified 2005-03-23

http://www.llnl.gov/CASC/components
components@llnl.gov