Loading...
Searching...
No Matches
- Does SCORPIO support Fortran/C/C++/Python applications?
- SCORPIO supports Fortran and C APIs. The C++ applications can use the C APIs. We currently don't support/test Python scripts/applications. For more information refer to SCORPIO user interface
- Why should I use SCORPIO instead of directly using the low-level I/O libraries like NetCDF?
- The SCORPIO library includes many performance enhancements to improve I/O throughput of applications. The I/O library also allows users to seamlessly use multiple I/O libraries and switch between the libraries within the same application
- What are the I/O libraries supported by SCORPIO?
- SCORPIO supports I/O using PnetCDF, NetCDF, HDF5 and ADIOS2 I/O libraries. The data is written out in the NetCDF3/NetCDF4 file formats using PnetCDF, NetCDF and HDF5 libraries. The data is written out in ADIOS BP file format using the ADIOS2 library. There are tools, provided with the library, to convert output in the ADIOS BP file format to NetCDF.
- Can I use SCORPIO if I have only one of the supported low-level I/O libraries (e.g. PnetCDF) installed on my system?
- Yes, however the library assumes that you have at least the NetCDF or PnetCDF library installed on your machine.
- Does SCORPIO support I/O without any low-level I/O libraries?
- We currently do not support I/O (e.g. direct Posix, MPI I/O etc) without the supported low-level I/O libraries
- Do you distribute spack builds (or other pre-built binaries) for the library releases?
- Spack binaries of recent versions of SCORPIO is available here
- Can I install SCORPIO on a generic linux laptop/desktop?
- Yes, please refer to Install Walk-through for more information
- Does SCORPIO support GPUs?
- No, we currently assume that all buffers passed to SCORPIO are CPU buffers.
- Does SCORPIO support I/O data compression?
- Yes, SCORPIO supports lossless and lossy I/O data compression using NetCDF, HDF5 and ADIOS2 I/O libraries.
- Does SCORPIO support asynchronous I/O?
- Yes, SCORPIO supports asynchronous I/O using asynchronous threads for making progress on I/O calls (currently supported only for the HDF5 I/O library) and using asynchronous I/O processes (A separate set of asynchronous I/O processes that are forwarded and make progress on all I/O calls, see PIO_init for more information)
- How do I install SCORPIO on my machine?
- SCORPIO uses CMake for configuring the library and assumes that an MPI library is available on the system. See Installing SCORPIO for more information
- Can I use SCORPIO if my application runs on a single process?
- The SCORPIO library uses MPI and assumes that the application is an MPI application (calls MPI_Init() before initializing the library). The library supports MPI applications that run using a single process.
- How do I integrate the SCORPIO library into my application?
- The API supported by the library is available at SCORPIO user interface. See usage_overview for an overview of how to use the SCORPIO library
- Can I specify the MPI processes performing I/O (write data to the file system)?
- The MPI processes that perform I/O (processes that write data to the file system) and the stride between the I/O processes are specified using arguments to the PIO_init api. Please refer to the API documention (PIO_init) for more information. However note that all APIs are collective calls and involve all the MPI processes (that are part of the MPI communicator specified while initializing the library)
- How many I/O processes are recommended for an MPI application?
- We recommend, as a starting point, assigning one I/O process per compute node on a supercomputer
- Can I initialize (and finalize) the library multiple times in an application?
- Yes, applications typically initialize (PIO_init) the library multiple times for different MPI communicators used by the different components in the application. e.g. An earth system model calls PIO_init for each model component (e.g. atmosphere, ocean, land components use different MPI communicators and initialize the library per component)
- Can I write an array of type X in memory to a variable of type Y in the file (e.g. Can I write an array of doubles to a variable of floats of the same size)?
- Yes, the library performs datatype conversion, if supported/valid, for the user as needed. The I/O decomposition (PIO_initdecomp) used for writing the data (PIO_write_darray , PIO_put_var) contains the information of the type (type X) of the variable in memory and its used for datatype convertion, as needed.
- How do I reference the SCORPIO library in research publications?
- See acknowledgement for information on how to cite the library in research publications