-
Notifications
You must be signed in to change notification settings - Fork 128
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
API Docs/Cheet Sheet: Collective, Blocking and Memory Contracts #1268
Comments
@ax3l point taken. Thanks for the feedback as usual. In the meantime, have you had the chance to look at https://adios2.readthedocs.io/en/latest/ ? Would the section on language API bindings (uses doxygen) help? We are always improving the docs based on applications feedback. Thanks! |
Thanks, we enjoy the staging demos very much over here. Argh, I have overlooked that in the README. Do you want to link it in the repo URL (next to the repo description on GitHub) just to make it more prominent? Will dig in. |
@ax3l good idea. Feel free to provide feedback if the docs are not clear (I will add the cheat sheet on MPI-related calls), all the https://adios2.readthedocs.io sources live under |
Let me second this particular point, as that is something that I'm still not clear on. The only thing I've seen in the docs is
Which makes sense, but I'm sure that's not all that's collective. In particular, how about |
@germasch @ax3l this is where the Keep in mind, the main difference between ADIOS1 and ADIOS2 is that ADIOS2 is a framework abstraction with key/value parameters that can alter the internal nature of the Engine virtual functions to improve performance. For the most part, IO (except Open), Variable, Attribute and Operator functions are local. Each Engine needs to document its abstraction and parameters to concretize for their use cases. |
@germasch @ax3l since you guys are physicists and comfortable with numerical solvers, we can make the analogy to PETSc KSP interface....each solver/engine allows for a set of parameters (e.g. Preconditioners, accuracy, norm type) to relax, optimize or improve the solution based on the nature of your problem (e.g. matrix type, partition used, communication,...). ADIOS2 is no different is that regard, Engines need better docs, though. Hope this helps. |
Thanks, that makes sense. As you say, it'd be good to have this document, in particular cases where, e.g., a Put() is usually not collective but may sometimes be if, say, a buffer is full. |
Thanks for the details! Yes, the idea is basically for users to know what they can write in an Similar to C++ |
#1286 addresses MPI questions, thanks a lot! Maybe, if I haven't missed it, the memory contracts could be described on |
@ax3l https://adios2.readthedocs.io/en/latest/components/components.html#engine-api-functions I'll try to make this section more clear and improve the narrative on memory contracts. The API docs, too. Thanks! |
Readthedocs have now a section for Put and Get memory contracts for the pointer (address) and data contents: https://adios2.readthedocs.io/en/latest/components/components.html#put-modes-and-memory-contracts https://adios2.readthedocs.io/en/latest/components/components.html#get-modes-and-memory-contracts The are similar to C++ deferred launch mode https://en.cppreference.com/w/cpp/thread/launch |
Hi,
we are currently sitting in the ADIOS2 tutorial at TU Dresden and as with ADIOS1, the following would be extremely useful:
A cheat sheet (or API documentation) of all public API calls (engine open/close, defines, step begin/end puts) that documents for each of those:
I personally like a lot about ADIOS1, that most calls on variables are local, non-blocking and not even collective in the MPI sense, but just explicitly documenting this will make starting with ADIOS2 for folks that already know MPI (everyone in HPC) so much easier.
The text was updated successfully, but these errors were encountered: