1 / 8

CCAData Object

CCAData Object. Craig Rasmussen Los Alamos National Laboratory. CCAData Raison D’etre. Consistent and abstract interchange of data Hides Data type Size Parallel layout. CCAData Is Minimalistic. No geometry (no dimensions, no arrays) No physics (no units) Implementation Iovec

bill
Download Presentation

CCAData Object

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CCAData Object Craig Rasmussen Los Alamos National Laboratory

  2. CCAData Raison D’etre • Consistent and abstract interchange of data • Hides • Data type • Size • Parallel layout

  3. CCAData Is Minimalistic • No geometry (no dimensions, no arrays) • No physics (no units) • Implementation • Iovec • source_machine • source_pointer • size • type

  4. CCAData Hierarchy • CCAData • CCAMesh • Adds geometry • CCAArray • CCAUnstructured • CCAField • Adds physics (has units) • CCAField contains a CCAMesh object • CCAMesh contains one (or more?) CCAData objects

  5. CCAData Hierarchy Example Usage • MxP data transfer • MP.send(CCAData src, CCAData dest, MPDistribution dist); • Fourier Transform • fft.run(CCAArray array); • CFD computation • Cfd.run(CCAField field)

  6. CCAArray Methods Class CCAArray { int getArrayRank(); int getShape(in int lenSizes, inout int[] sizes); local int getLocalShape(in int getShape(in int lenSizes, inout int[] sizes); int lenSizes, inout int[] sizes); local int getLocalArrayIteratorFor(in int dim, out int firstOffset, out int lastOffset, out int stride) local int getLocalReadOnlyLock(inout dataPointer); local int getLocalReadWriteLock(inout dataPointer); local int releaseLocal Lock(inout dataPointer); }

  7. Compaq Fortran Descriptor • Byte 0 contains a count of the number of dimensions (rank). • Byte 1 should always contain a 1. • Byte 2 contains the data type of the result, as follows: • 1 for INTEGER (KIND=1) • 2 for INTEGER (KIND=2) • 3 for INTEGER (KIND=4) • 4 for INTEGER (KIND=8) • 5 for LOGICAL (KIND=1) • 6 for LOGICAL (KIND=2) • 7 for LOGICAL (KIND=4) • 8 for LOGICAL (KIND=8) • 9 for REAL (KIND=4) • 10 for REAL (KIND=8)

  8. Compaq Fortran Descriptor, continued • 11 for REAL (KIND=16) • 12 for COMPLEX (KIND=4) or COMPLEX*8 • 13 for COMPLEX (KIND=8) or COMPLEX*16 • 14 for CHARACTER • 15 for RECORD • 17 for COMPLEX (KIND=16) or COMPLEX*32 • Bytes 3 to 7 (inclusive) are reserved. • Bytes 8 to 15 contain the element length for character data, in bytes. • Bytes 16 to 23 contain the address of the first element of an array. • Bytes 24 to 39 are reserved. • The remaining bytes (40 to 207) contain information about each array dimension

More Related