ornladios / ADIOS2

Next generation of ADIOS developed in the Exascale Computing Program
https://adios2.readthedocs.io/en/latest/index.html
Apache License 2.0
272 stars 126 forks source link

Fortran example broken #2224

Closed nvarini closed 11 months ago

nvarini commented 4 years ago

Dear community, I would like to use ADIOS2 with Fortran. However it seems there is not much in the documentation. One example is provided: https://github.com/ornladios/ADIOS2/blob/master/testing/adios2/bindings/fortran/TestBPWriteReadHeatMap3D.f90 but it is broken Is there a high-level api for fortran? Where is the best place to start from?

Best regards

williamfgc commented 4 years ago

@nvarini thanks fro trying out the Fortran bindings. To answer your questions: the link provided doesn't exist anymore, could it be possible that you using an older version? Please prefer v2.5.0 or master for the latest development.

There is no high-level API in Fortran, only in Python and C++. Best place to start for Fortran is the directory you're referring to for Fortran tests which are really examples and the adios2 user guide in readthedocs. Also, @pnorbert has tutorial material.

Hope it helps. Best

nvarini commented 4 years ago

Thanks for your reply william, indeed I tried the v2.5.0 and doesn't work unless I am missing something. So, for fortran you have to use the full api? Tutorials would be great!

williamfgc commented 4 years ago

@nvarini tests should be working as they are part of the CI infrastructure. Building adios2 with Fortran support (it's all in the user guide) and doing ctest -R Fortran should run all Fortran tests cases. The Fortran test binaries are located under the generate bin directory in your build directory. That being said, please feel free to elaborate if you are finding an issue (you might have seen a template for issues on your first post). Yes, Fortran and C bindings use the full APIs only.

nvarini commented 4 years ago

Thanks for your comments, is there a converter or something that allows to convert from ADIOS1 to ADIOS2? I've a more or less working implementation of my code with ADIOS1, I'd like to test and compare it against ADIOS2.

pnorbert commented 4 years ago

Please try adios2_reorganize for converting. This works in parallel for large files. You can use "File" as the method for both read and write, which will automatically open BP3 but write BP4. Note that this tool works only for global arrays but not for local arrays.

On Thu, May 14, 2020 at 10:26 AM nvarini notifications@github.com wrote:

Thanks for your comments, is there a converter or something that allows to convert from ADIOS1 to ADIOS2? I've a more or less working implementation of my code with ADIOS1, I'd like to test and compare it against ADIOS2.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ornladios/ADIOS2/issues/2224#issuecomment-628671751, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAYYYLORFPQ2L3SRGNK4RE3RRP5SNANCNFSM4M5WPLOQ .

pnorbert commented 4 years ago

@nvarini, is this still an issue or can we close it?

nvarini commented 4 years ago

@pnorbert I think you can close it for the time being. Although the system I was planning to use is currently under maintenance. I will resume this activity a little later. I realized in my previous question about converter I was not clear. I actually mean if there is a tool capable to convert source code from adios1 to adios2. In the old adios1 was quite handy to have the xml approach, however it seems now much more verbose. Thanks again

pnorbert commented 4 years ago

The difference between the semantics of adios1 and adios2 functions is such that we do not attempt to even think about a converter. E.g. open/close every output step vs open only once and use begin_step/end_step (which entails maintaining a global variable for adios file handle in Fortran). Similarly, adios2 is typed and there are objects (adios, io, engine) that have to be introduced into the code. However, we changed codes for XGC, GTC, NWChem and we can also help you with this transition. Please contact me by email and we can discuss what needs to be done and maybe spend some time looking at your code. pnorbert@ornl.gov If you used to define the variables in the xml and generate code to include, there is more typing required in Fortran, as we don't do that anymore.

eisenhauer commented 11 months ago

Closed as inactive.