16
This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under contract DE-AC52-07NA27344. Lawrence Livermore National Security, LLC Cyrus Harrison, Brian Ryujin, Adam Kunen LLNL-PRES-666591

Cyrus Harrison, Brian Ryujin, Adam Kunen

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cyrus Harrison, Brian Ryujin, Adam Kunen

This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under contract DE-AC52-07NA27344. Lawrence Livermore National Security, LLC

Cyrus Harrison, Brian Ryujin, Adam Kunen

LLNL-PRES-666591

Page 2: Cyrus Harrison, Brian Ryujin, Adam Kunen

2 LLNL-PRES-666591

Today: I/O libraries have evolved into defacto interfaces between: §  Simulation Components §  Simulations and Pre- and Post-processing tools:

§  meshing, visualization, analysis, etc

Page 3: Cyrus Harrison, Brian Ryujin, Adam Kunen

3 LLNL-PRES-666591

The Future: §  Increased CS emphasis on modular physics

package design §  In-situ APIs for components that are usually I/O

isolated as Pre- and Post-processing

Page 4: Cyrus Harrison, Brian Ryujin, Adam Kunen

4 LLNL-PRES-666591

Key Requirements:

§  A description mechanism for numeric primitives: •  Scalars, ragged arrays, etc with explicit precision

§  Mixed memory ownership semantics: •  Enables Zero-copy where feasible •  Plays friendly with existing data structures

§  Enable higher level conventions: •  Hierarchical context •  Human readable descriptions

Page 5: Cyrus Harrison, Brian Ryujin, Adam Kunen

5 LLNL-PRES-666591

Conduit  provides: §  A flexible way to describe complex data:

•  A JSON-based schema for describing the layout of hierarchical in-core data.

§  A sane API to access complex data: •  A dynamic API for rapid construction and consumption

of hierarchical data in C++, C, Python, and FORTRAN.

Page 6: Cyrus Harrison, Brian Ryujin, Adam Kunen

6 LLNL-PRES-666591

Data (80 bytes) Conduit JSON Schema

0x00

0x08

0x10

0x18

0x20

0x28

0x30

0x38

0x40

0x48

0x07

0x0F

0x17

0x1F

0x27

0x2F

0x37

0x3F

0x47

0x4F

time cycle

x[0] x[1]

x[2] y[0] y[1] y[2]

r[0] r[1] r[2] r[3]

temp[1] temp[0]

temp[2] temp[3]

press[1] press[0]

press[2] press[3]

{ "cycle": "uint64", "time": "float64", "coords": { "x": {"dtype":"float32", "length": 3}, "y": {"dtype":"float32", "length": 3} }, "fields": { "region": {"dtype":"uint16", "length": 4}, "temp": {"dtype":"float32", "length": 4}, "pressure": {"dtype":"float32", "length": 4} } }

Page 7: Cyrus Harrison, Brian Ryujin, Adam Kunen

7 LLNL-PRES-666591

Page 8: Cyrus Harrison, Brian Ryujin, Adam Kunen

8 LLNL-PRES-666591

Page 9: Cyrus Harrison, Brian Ryujin, Adam Kunen

9 LLNL-PRES-666591

Page 10: Cyrus Harrison, Brian Ryujin, Adam Kunen

10 LLNL-PRES-666591

Page 11: Cyrus Harrison, Brian Ryujin, Adam Kunen

11 LLNL-PRES-666591

Page 12: Cyrus Harrison, Brian Ryujin, Adam Kunen

12 LLNL-PRES-666591

Page 13: Cyrus Harrison, Brian Ryujin, Adam Kunen

13 LLNL-PRES-666591

Page 14: Cyrus Harrison, Brian Ryujin, Adam Kunen

14 LLNL-PRES-666591

A Node acts as one of following basic types: §  Object

•  An ordered associative array mapping names to children.

§  List •  An ordered list of unnamed children.

§  Leaf (Scalar or Array of bitwidth-specified primitives) •  Signed Integers: int8, int16, int32, int64 •  Unsigned Integers: uint8, uint16, uint32, uint64 •  Floating Point Numbers: float32, float64 •  Strings: char8_str

Page 15: Cyrus Harrison, Brian Ryujin, Adam Kunen

15 LLNL-PRES-666591

§  Completely runtime focused •  Avoids incompatible (or unsharable) code-generation

solutions.

§  Language agnostic •  C++ API which underpins developing Python, C, and

Fortran APIs. •  JSON is used for data layout

§  Data description as a core capability •  Does not require repacking •  Helps build serialization, I/O, and messaging features.

Page 16: Cyrus Harrison, Brian Ryujin, Adam Kunen

16 LLNL-PRES-666591

§  Conduit can help ease in-core data exchange in our simulation codes and are working eagerly to test this hypothesis.

§  Conduit is released under a BSD-Style License.

§  Contact Info: Cyrus Harrison ([email protected]) Brian Ryujin ([email protected]) Adam Kunen ([email protected])