Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate groupless #8

Merged
merged 216 commits into from
Mar 29, 2017
Merged

Integrate groupless #8

merged 216 commits into from
Mar 29, 2017

Conversation

chuckatkins
Copy link
Contributor

Initial migration of https://github.com/williamfgc/adiospp

Not ready for merging yet

William F. Godoy and others added 30 commits September 29, 2016 17:14
1. CADIOS parent class
2. Heat Transfer test case
1) Doxygen file
2) Coding Guidelines document
2) Added more info to CodingGuidelines

3) Added SMetadata.h file
To do:
1) Test Makefile with and without MPI
targets mpi and nompi

Used ./example/hello to test libraries

Updated README.md and ./examples/hello/README
To do:

Formulate Transport and Transform classes
Reading XML file to populate Group structs
Reached the part in which XML tag fields and values are extracted.

To do:
Populate m_Groups from these fields and values.
functions needed by ADIOS.h. In the future will reduce compilation
times.

Implemented m_Globals population. Switched unique_ptr to shared_ptr to
allow for copyable classes in empty SGlobal in m_Globals map value.
in this class.

2. Added functions in CGroup and CADIOS that can be called from the XML
and non-XML APIs. User only interacts with CADIOS public functions.

3. Modified Makefile to test helloADIOS_nompi.

4. Tested population of Group and Variable classes from XML file

To do:
1) Wrap setting transport 
2) Test hello adios mpi
Warning: Makefile only compiling for all, not nompi or mpi
Changed Monitor function in ADIOS and Group so it can take an ostream
Edited Makefile to allow nompi and full libraries 
Edited ./doc/Doxyfile to include more graphs
Added Transform Classes headers, need to implement


Need to modify Makefile to account for transform directories under
/include and /src
1) Eliminated MPI and NonMPI separate functions and Transports

2) All Transport classes extend CTransport

3) Using mpidummy.h header for non-mpi compilation. Will need to include
it in the adios namespace (currently C)


To do:
Makefile
Hello all Transports
BP File
Changed Doxyfile to print inclusion diagrams
Reorganized code to allow mpidummy.h inclusion replacing mpi.h for
single source object.
transform classes (e.g. NetCDF4, PHDF5, BZIP2, etc.)
Added debug mode member variable in ADIOS, CGroup classes for additional
checking, expect slower code.
Changed ./public/mpidummy.c to ./public/mpidummy.cpp

Corrected a bug in ADIOSFunctions.cpp InitXML function, string
xmlFileContent was created twice

Need to test the XML parser: ADIOSFunctions.cpp GetSubtring function to
support > in tag attributes, e.g. name="<myname>" >
Added ./examples/hello/helloFStream.cpp and Modified Makefile to test
Hello in ADIOS Write function

Added more context in ./doc/CodingGuildelines and README files

Changed definition of Variable and VariableTemplate to always allow a
void* type. Might be a better way?


To do:
Test void* to int* or double* conversion
Test check for "<>" in XML Config file
Must use polymorphism of the CVariable class with Get and Set? 
Union should be avoided as it doesn't preserve actual memory size of
variable type (always returns the largest).
Added: m_HostLanguage as const reference (need to use move constructor,
not copy when inserting to map).

Modified: m_Attributes is now a map

Testing VariableTemplate Get and Set

Worked with int* and std::vector<int> (not need to pass a size with
vector)

To do:
Add variable Support for CGroup::SetVariable function
Add SSupport Datatypes as a function of host language.
Test "vector<int>" < > in XML Config file
Changes in CVariable and CVariableTemplate:
Replace CVariable with CVariableBase
Replace CVariableTemplate<> (it's obvious) with CVariable<>

Added file functions/GroupFunctions.cpp for helper functions to
decongest CGroup, especially those related to variable and transport
selections from lookup table structs (see SSupport.h).

Added exception to "using" in doc/CodingGuidelines

Switched all shared_ptr in CGroup members to the more restrictive
unique_ptr

To-do:
Modify CGroup and SetMembers in ADIOSFunctions so groupName is
identified before CGroup. This will allow an emplace on m_Groups map for
unique_ptr.
Decongest CGroup for Variable creation and value setting

Partial testing and debug of XML read implementation to allow "< >" in
names. Required to allow STL containers as types (e.g.
"vector<double>").

Back to std::shared_ptr in CGroup members. std::make_pair calls the copy
constructor by default. Will keep track of std::shared_ptr counts.

Added more checks for debug version to guarantee exceptions.

To do: 
Add and test more types.
Add Capsule class and support.
pnorbert and others added 11 commits March 27, 2017 15:18
… mpi dummy collision prevents building examples in nompi mode.
Need to verify metadata footer
Single variable example works. Moving on to time aggregation example.
Will merge into groupless branch
Resolved conflicts.

See examples under examples/hello/:

bpWriter (single variables writes)
timeBP   (time aggregation)
datamanWriter ( needs external DataMan, libzmq, must in
(DY)LD_LIBRARY_PATH ). See README.md and Makefile.libs under ADIOSPP.
@chuckatkins
Copy link
Contributor Author

@williamfgc @pnorbert This should give you a preview of what we'll be looking at. I've still got to add examples, address formatting issues, and integrate the DataMan and ZMQ find modules.

@chuckatkins chuckatkins changed the title WIP: Integrate groupless Integrate groupless Mar 29, 2017
@chuckatkins chuckatkins merged commit 9aa408d into ornladios:master Mar 29, 2017
@chuckatkins chuckatkins deleted the integrate-groupless branch March 31, 2017 17:10
pnorbert added a commit to pnorbert/ADIOS2 that referenced this pull request Jun 6, 2017
* Added examples for variables

* fix more example code

* make Open explicit in ADIOS1 toolkit. Fix handling open mode

* fix OpenModeToString() to serve adios 1 API's needs as well

* fix basic examples after code refactoring

* fix nompi build for basic examples

* fix nompi build
JasonRuonanWang added a commit that referenced this pull request Feb 1, 2018
Implemented new function to reset metadata in BP3Deserializer
JieyangChen7 pushed a commit to JieyangChen7/ADIOS2 that referenced this pull request Feb 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants