ADIOS2 issueshttps://code.ornl.gov/pnb/ADIOS2/-/issues2019-06-17T22:30:11Zhttps://code.ornl.gov/pnb/ADIOS2/-/issues/1221static build on Mac: install of adios2-config fails2019-06-17T22:30:11ZPodhorszki, Norbertstatic build on Mac: install of adios2-config fails*Created by: pnorbert*
pnb13:build-parallel-static pnb$ cmake -DCMAKE_INSTALL_PREFIX=/opt/adios2-static -DADIOS2_USE_MPI=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true ..
```
ADIOS2 build configuration:
AD...*Created by: pnorbert*
pnb13:build-parallel-static pnb$ cmake -DCMAKE_INSTALL_PREFIX=/opt/adios2-static -DADIOS2_USE_MPI=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true ..
```
ADIOS2 build configuration:
ADIOS Version: 2.3.1
C++ Compiler : AppleClang 9.0.0.9000038
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
Fortran Compiler : GNU 8.2.0
/usr/local/bin/gfortran
Installation prefix: /opt/adios2-static
bin: bin
lib: lib
include: include
cmake: lib/cmake/adios2
Features:
Library Type: static (with PIC)
Build Type: Release
Testing: ON
Build Options:
BZip2 : ON
ZFP : OFF
SZ : OFF
MGARD : OFF
MPI : ON
DataMan : ON
SST : ON
ZeroMQ : OFF
HDF5 : ON
Python : OFF
Fortran : ON
SysVShMem: ON
Endian_Reverse: OFF
```
```
$ sudo make install
...
-- Found atl: /opt/adios2-static/lib/cmake/adios2/thirdparty/atl-config.cmake (found suitable version "2.2.1", minimum required is "2.2.1")
-- Found atl: /opt/adios2-static/lib/cmake/adios2/thirdparty/atl-config.cmake (found version "2.2.1")
-- Found dill: /opt/adios2-static/lib/cmake/adios2/thirdparty/dill-config.cmake (found version "2.4.0")
-- Found ffs: /opt/adios2-static/lib/cmake/adios2/thirdparty/ffs-config.cmake (found suitable version "1.6.0", minimum required is "1.6.0")
-- Found dill: /opt/adios2-static/lib/cmake/adios2/thirdparty/dill-config.cmake (found suitable version "2.4.0", minimum required is "2.4.0")
-- Found EVPath: /opt/adios2-static/lib/cmake/adios2/thirdparty/EVPathConfigCommon.cmake (found version "4.4.0")
CMake Error at /opt/adios2-static/lib/cmake/adios2/upstream/CMakeFindDependencyMacro.cmake:47 (find_package):
Found package configuration file:
/opt/adios2-static/lib/cmake/adios2/thirdparty/EVPathConfig.cmake
but it set EVPath_FOUND to FALSE so package "EVPath" is considered to be
NOT FOUND. Reason given by package:
The following imported targets are referenced, but are missing: enet::enet
Call Stack (most recent call first):
/opt/adios2-static/lib/cmake/adios2/adios2-config-common.cmake:57 (find_dependency)
/opt/adios2-static/lib/cmake/adios2/adios2-config.cmake:29 (include)
CMakeLists.txt:5 (find_package)
-- Configuring incomplete, errors occurred!
See also "/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.bxDz4Tym/CMakeFiles/CMakeOutput.log".
Failed
```2.4.0 Production Releasehttps://code.ornl.gov/pnb/ADIOS2/-/issues/1141C API: missing functions to get a Value2019-02-05T22:28:00ZPodhorszki, NorbertC API: missing functions to get a Value*Created by: pnorbert*
there is adios2_variable_min() and adios2_variable_max() but there is no adios2_variable_value() for a GlobalValue. I know the min/max returns the value for GlobalValue variables but still the API is not complete.
*Created by: pnorbert*
there is adios2_variable_min() and adios2_variable_max() but there is no adios2_variable_value() for a GlobalValue. I know the min/max returns the value for GlobalValue variables but still the API is not complete.
https://code.ornl.gov/pnb/ADIOS2/-/issues/1135Python low-level bindings read string problem2019-03-11T14:54:17ZPodhorszki, NorbertPython low-level bindings read string problem*Created by: williamfgc*
Python doesn't pre-allocate a string that can be passed to C++ glue code using pybind11. Need to find an alternative.*Created by: williamfgc*
Python doesn't pre-allocate a string that can be passed to C++ glue code using pybind11. Need to find an alternative.https://code.ornl.gov/pnb/ADIOS2/-/issues/1133BP marshaling in SST requires extra global MPI operations2019-02-06T02:37:26ZEisenhauer, GregBP marshaling in SST requires extra global MPI operationsSST has a need to aggregate metadata from different ranks to provide it to the reader ranks. SST's metadata includes SST-based metadata in addition to the metadata associated with written application data. For FFS marshaling, we piggyb...SST has a need to aggregate metadata from different ranks to provide it to the reader ranks. SST's metadata includes SST-based metadata in addition to the metadata associated with written application data. For FFS marshaling, we piggyback aggregating FFS-based metadata along with SST-based things using the same global operations. Unfortunately the BP3Serializer operation AggregateCollectiveMetadata() is does it's own MPI global operations, so we cannot use it in such a way that we can get by with the same global operations for both sorts of aggregation. Ideally AggregateCollectiveMetadata() would be augmented with different routines that would assemble aggregate metadata using individual rank metadata that SST has transported to rank 0 (or some other rank).https://code.ornl.gov/pnb/ADIOS2/-/issues/1125BP threading problem2019-02-01T19:27:58ZPodhorszki, NorbertBP threading problem*Created by: JasonRuonanWang*
libc throws an exception when I run a casacore + Adios2StMan test.
The code writes one ADIOS variable with the dimension 10,000 x 1024 in float, from 12 MPI processes, each launching 4 threads in BP.
...*Created by: JasonRuonanWang*
libc throws an exception when I run a casacore + Adios2StMan test.
The code writes one ADIOS variable with the dimension 10,000 x 1024 in float, from 12 MPI processes, each launching 4 threads in BP.
Each put writes a 1 x 1024 slices of the entire 10,000 x 1024 variable, and 12 MPI processes do round robin to fill all 10,000 sliceshttps://code.ornl.gov/pnb/ADIOS2/-/issues/1120C API and reading a string value2019-02-05T22:08:55ZPodhorszki, NorbertC API and reading a string value*Created by: pnorbert*
In a C application we need to pre-allocate the memory to read in a string value. We need to have a function to retrieve the size of the that value, so we can allocate the correct amount of memory.*Created by: pnorbert*
In a C application we need to pre-allocate the memory to read in a string value. We need to have a function to retrieve the size of the that value, so we can allocate the correct amount of memory.https://code.ornl.gov/pnb/ADIOS2/-/issues/1112InSituMPI: substream parameter causes problems2019-05-20T18:38:37ZPodhorszki, NorbertInSituMPI: substream parameter causes problems*Created by: pnorbert*
The option meant for BPFile engine, if stays in for InSituMPI, the staging application will not work. Problem shows up on Titan and Summit
3: 4: [FTT:4] [a04n06:120279] *** An error occurred in MPI_Waitall
3: ...*Created by: pnorbert*
The option meant for BPFile engine, if stays in for InSituMPI, the staging application will not work. Problem shows up on Titan and Summit
3: 4: [FTT:4] [a04n06:120279] *** An error occurred in MPI_Waitall
3: 4: [FTT:4] [a04n06:120279] *** reported by process [2751481843,4]
3: 4: [FTT:4] [a04n06:120279] *** on communicator MPI_COMM_WORLD
3: 4: [FTT:4] [a04n06:120279] *** MPI_ERR_TRUNCATE: message truncated
3: 4: [FTT:4] [a04n06:120279] *** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,https://code.ornl.gov/pnb/ADIOS2/-/issues/1111SST: reading when there are zero size blocks2019-06-13T16:40:51ZPodhorszki, NorbertSST: reading when there are zero size blocks*Created by: pnorbert*
It seems SST reading does not bring the correct data when some processes write zero size blocks.
The sick example was seen in EPOCH, where some variables' data is only written from rank 0 but actually all proces...*Created by: pnorbert*
It seems SST reading does not bring the correct data when some processes write zero size blocks.
The sick example was seen in EPOCH, where some variables' data is only written from rank 0 but actually all processes define and put() the variable. All non-zero rank writes a count=0 size array.
This causes no problem at reading with BPFile. But when reading with SST, the data is invalid.
There is no test or example at the moment to re-create this problem.
In general, zero-sized blocks are allowed as it regularly happens in particle codes (picongpu, xgc, etc).
We need tests like this. Eisenhauer, GregEisenhauer, Greghttps://code.ornl.gov/pnb/ADIOS2/-/issues/1046Data Model support: Stream over a series of file names2018-12-10T20:42:26ZPodhorszki, NorbertData Model support: Stream over a series of file names*Created by: pnorbert*
Let's unify the API for applications that write a single file with multiple steps and applications that write each step into a new file, so that we can read both of them the same way. We propose here to support a ...*Created by: pnorbert*
Let's unify the API for applications that write a single file with multiple steps and applications that write each step into a new file, so that we can read both of them the same way. We propose here to support a file name pattern in printf style in the Open() call, e.g.:
`engine = io.Open("xgc.3d.%05d.bp", ...)`
This can write/read a series of
```
xgc.3d.00000.bp
xgc.3d.00001.bp
xgc.3d.00002.bp
...
```
On the write side, this way one can write one code (Open, BeginStep, ..., EndStep, Close) and then just control with the filename if a single file is created and append each step, or a series of files. On the read side then, one can read in data from a series of files the same way as multiple steps from a single file (only step by step, not all of them at once).
The Kitware designed ADIOS Data Model will rely on this functionality to easily read in multiple steps, no matter where they come from. https://code.ornl.gov/pnb/ADIOS2/-/issues/987Python function to check no. of steps available 2018-11-06T18:55:18ZPodhorszki, NorbertPython function to check no. of steps available *Created by: kshitij-v-mehta*
Using the low-level Python Read API, is there a way to get the number of timesteps available for a variable?*Created by: kshitij-v-mehta*
Using the low-level Python Read API, is there a way to get the number of timesteps available for a variable?https://code.ornl.gov/pnb/ADIOS2/-/issues/926Multiple DataPlanes?2018-10-14T19:53:36ZEisenhauer, GregMultiple DataPlanes?Possible useful enhancement. With the current SST design, there is only one dataplane per stream, with the result (generally) that the writer must choose a particular dataplane and all readers must employ the same one. However, it migh...Possible useful enhancement. With the current SST design, there is only one dataplane per stream, with the result (generally) that the writer must choose a particular dataplane and all readers must employ the same one. However, it might be desirable for the dataplane to be negotiated between reader and writer, and possibly for the dataplane to be a per-reader thing (so that you could have a cluster-local reader that uses RDMA and an off-cluster reader using EVPath/sockets).https://code.ornl.gov/pnb/ADIOS2/-/issues/913SST has a 2020-03-03T18:07:17ZPodhorszki, NorbertSST has a *Created by: pnorbert*
SST has the same scalability issue that InsituMPI had in
Fix scalability bottleneck in InSituMPIReader PR #863
"Currently, the reader receives and deserializes messages from each writer one by one. This des...*Created by: pnorbert*
SST has the same scalability issue that InsituMPI had in
Fix scalability bottleneck in InSituMPIReader PR #863
"Currently, the reader receives and deserializes messages from each writer one by one. This design is limiting the scalability in terms of the number of writers per reader. Need to change the behavior to a bulk receive followed by a bulk deserialization."
ffs_marshal.c:
```
static SstStatusValue WaitForReadRequests(SstStream Stream)
{
struct FFSReaderMarshalBase *Info = Stream->ReaderMarshalData;
for (int i = 0; i < Stream->WriterCohortSize; i++)
{
if (Info->WriterInfo[i].Status == Requested)
{
SstStatusValue Result =
SstWaitForCompletion(Stream, Info->WriterInfo[i].ReadHandle);
if (Result == SstSuccess)
{
Info->WriterInfo[i].Status = Full;
DecodeAndPrepareData(Stream, i);
}
else
{
CP_verbose(Stream, "Wait for remote read completion failed, "
"returning failure\n");
return Result;
}
}
}
CP_verbose(Stream, "All remote memory reads completed\n");
return SstSuccess;
}
```
Similarly, this needs to be checked for BP marshalling.Eisenhauer, GregEisenhauer, Greghttps://code.ornl.gov/pnb/ADIOS2/-/issues/912ctest cannot launch MPMD tests on Cori with Slurm 2018-10-03T22:09:38ZPodhorszki, Norbertctest cannot launch MPMD tests on Cori with Slurm *Created by: pnorbert*
The MPMD tests (SST, InsituMPI) cannot run on Cori because the launch syntax is different from what cmake generates. See
https://www.nersc.gov/users/computational-systems/cori/running-jobs/advanced-running-jobs-...*Created by: pnorbert*
The MPMD tests (SST, InsituMPI) cannot run on Cori because the launch syntax is different from what cmake generates. See
https://www.nersc.gov/users/computational-systems/cori/running-jobs/advanced-running-jobs-options/
Search for MPMD.
`srun --multi-prog ./mpmd.con`
Currently we get errors for each test:
`srun: fatal: Job steps that span multiple components of a heterogeneous job are not currently supported`
https://code.ornl.gov/pnb/ADIOS2/-/issues/794Zeros in multiple time steps when no Close is called and Flush is (BPFIle)2019-09-25T17:14:40ZPodhorszki, NorbertZeros in multiple time steps when no Close is called and Flush is (BPFIle)*Created by: stevenwalton*
Working with the Ascent program I am unable to call `adiosWriter.Close()` and a few issues have been brought up because of this case. I have found that when writing to BPFiles that the first time step correctl...*Created by: stevenwalton*
Working with the Ascent program I am unable to call `adiosWriter.Close()` and a few issues have been brought up because of this case. I have found that when writing to BPFiles that the first time step correctly writes, but each subsequent `BeginStep()/EndStep()` pair is called that the data does not get written.
This currently does not affect SST or DataMan and #757 fixed the issues for HDF5.
When writing toy examples I can not reproduce the problem and I do not get it when I use small vectors within Ascent. It appears that vector sizes need to be quite large to reproduce this error.
If `adiosWriter.Close()` is called, this is not an issue. https://code.ornl.gov/pnb/ADIOS2/-/issues/748Support for string arrays2018-07-26T03:01:24ZPodhorszki, NorbertSupport for string arrays*Created by: isosc*
This is a followup on a discussion with @williamfgc and @pnorbert about adding support for string arrays (vector of strings, numpy array). The primary need is to extend the C++ API to support put and get of vectors o...*Created by: isosc*
This is a followup on a discussion with @williamfgc and @pnorbert about adding support for string arrays (vector of strings, numpy array). The primary need is to extend the C++ API to support put and get of vectors of strings. Once that exists, extending this functionality into Python should be straightforward.
One design issue is how to serialize and deserialize this data structure to BP. We discussed a tentative strategy which involved storing a list of string sizes followed by the collapsed string data. https://code.ornl.gov/pnb/ADIOS2/-/issues/551JoinedArray functionality for Fortran2018-04-15T20:34:55ZPodhorszki, NorbertJoinedArray functionality for Fortran*Created by: kshitij-v-mehta*
Looks like 'JoinedArray' for defining a variable is not implemented yet.*Created by: kshitij-v-mehta*
Looks like 'JoinedArray' for defining a variable is not implemented yet.https://code.ornl.gov/pnb/ADIOS2/-/issues/274Problem enabling Python on Windows2017-09-21T16:37:37ZPodhorszki, NorbertProblem enabling Python on Windows*Created by: scottwittenburg*
There seems to be some problem finding all the pieces needed to enable python when configuring on windows:
```
C:\Users\kitware\projects\adios2\build>"C:\Program Files\CMake\bin\cmake.exe" ../source -DA...*Created by: scottwittenburg*
There seems to be some problem finding all the pieces needed to enable python when configuring on windows:
```
C:\Users\kitware\projects\adios2\build>"C:\Program Files\CMake\bin\cmake.exe" ../source -DADIOS2_USE_Python:Bool=ON
-- Building for: Visual Studio 14 2015
-- The C compiler identification is MSVC 19.0.24215.1
-- The CXX compiler identification is MSVC 19.0.24215.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Could NOT find BZip2 (missing: BZIP2_LIBRARIES BZIP2_INCLUDE_DIR)
-- Could NOT find ZFP (missing: ZFP_LIBRARY ZFP_INCLUDE_DIR)
-- Could NOT find MPI_C (missing: MPI_C_LIBRARIES MPI_C_INCLUDE_PATH)
-- Could NOT find MPI_CXX (missing: MPI_CXX_LIBRARIES MPI_CXX_INCLUDE_PATH)
-- Could NOT find ZeroMQ (missing: ZeroMQ_LIBRARY ZeroMQ_INCLUDE_DIR)
-- Could NOT find HDF5 (missing: HDF5_LIBRARIES HDF5_INCLUDE_DIRS C)
-- Looking for pthread.h
-- Looking for pthread.h - not found
-- Found Threads: TRUE
-- Could NOT find ADIOS1 (missing: ADIOS1_LIBRARY ADIOS1_INCLUDE_DIR) (Required is at least version "1.12.0")
-- Found PythonInterp: C:/Python27/python.exe (found version "2.7.13")
-- Found PythonModule_numpy: C:/Python27/lib/site-packages/numpy
CMake Error at C:/Program Files/CMake/share/cmake-3.8/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find PythonFull (missing: PYTHON_LIBRARIES Libs)
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.8/Modules/FindPackageHandleStandardArgs.cmake:377 (_FPHSA_FAILURE_MESSAGE)
cmake/FindPythonFull.cmake:53 (find_package_handle_standard_args)
cmake/DetectOptions.cmake:117 (find_package)
CMakeLists.txt:95 (include)
-- Configuring incomplete, errors occurred!
See also "C:/Users/kitware/projects/adios2/build/CMakeFiles/CMakeOutput.log".
See also "C:/Users/kitware/projects/adios2/build/CMakeFiles/CMakeError.log".
```