Skip to content

ADIOS2: Infrastructure & Docs Update#568

Merged
ax3l merged 7 commits intoopenPMD:devfrom
ax3l:topic-adios2Updates
Oct 15, 2019
Merged

ADIOS2: Infrastructure & Docs Update#568
ax3l merged 7 commits intoopenPMD:devfrom
ax3l:topic-adios2Updates

Conversation

@ax3l
Copy link
Member

@ax3l ax3l commented Oct 7, 2019

Further updates now that we have ADIOS2 #482 taking off 🚀 ✨

  • update documentation further, including changes and upgrades
  • update CI to dominantly check ADIOS2 runtime
  • update Dockerfile for manylinux2010 build ADIOS 2.5.0: Static Build Issues Linking Blosc ornladios/ADIOS2#1810
  • update parallel benchmark example
  • make selected backend for .bp files a runtime option (currently via environment variable)
  • fix OSX Extent cast causing a build error

Found bug during the process

ADIOS2 VariableDefiner: Fix OSX Cast Error

Add an explicit cast from openPMD::Extent (aka std::vector< std::uint64_t >) to adios2::Dims (aka std::vector< std::size_t >) to avoid a compile error on OSX:

    include/openPMD/Datatype.hpp:558:23: error: no matching member function for call to 'operator()'
            return action.OPENPMD_TEMPLATE_OPERATOR( )< char >(
                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    include/openPMD/Datatype.hpp:532:44: note: expanded from macro 'OPENPMD_TEMPLATE_OPERATOR'
                                               ^
    
    src/IO/ADIOS/ADIOS2IOHandler.cpp:201:9: note: in instantiation of function template specialization 'openPMD::switchType<void, openPMD::detail::VariableDefiner, adios2::IO &, std::__1::basic_string<char> &, std::__1::unique_ptr<adios2::Operator, std::__1::default_delete<adios2::Operator> >, const std::__1::vector<unsigned long long, std::__1::allocator<unsigned long long> > &>' requested here
            switchType( parameters.dtype, detail::VariableDefiner( ),
            ^
    
    src/IO/ADIOS/ADIOS2IOHandler.cpp:794:5: note: candidate function not viable: no known conversion from 'const vector<unsigned long long, allocator<unsigned long long>>' to 'const vector<size_t, allocator<unsigned long>>' for 4th argument
        operator( )( adios2::IO & IO, const std::string & name,
        ^
    
    src/IO/ADIOS/ADIOS2IOHandler.cpp:804:27: note: candidate template ignored: invalid explicitly-specified argument for template parameter 'n'
        void VariableDefiner::operator( )( adios2::IO &, Params &&... )

@ax3l ax3l force-pushed the topic-adios2Updates branch 2 times, most recently from 501230b to 1fd2a4b Compare October 7, 2019 05:28
@ax3l ax3l requested a review from franzpoeschel October 7, 2019 05:38
.travis.yml Outdated
if [ -f $binary ]; then
kcov --exclude-pattern=/usr/,share/openPMD/thirdParty,/test/ ../coverage/$binary $binary;
fi;
- for OPENPMD_BP_PROVIDER in "ADIOS1" "ADIOS2"; do
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure if that will work or just overwrite the results.

@ax3l ax3l force-pushed the topic-adios2Updates branch 2 times, most recently from d20450e to 1cf6a2a Compare October 7, 2019 14:18
@ax3l ax3l force-pushed the topic-adios2Updates branch from 10de30a to 463f23c Compare October 14, 2019 08:26
@ax3l ax3l added bug machine/system machine & HPC system specific issues labels Oct 14, 2019
@ax3l ax3l force-pushed the topic-adios2Updates branch 3 times, most recently from 9965e41 to 2177305 Compare October 14, 2019 23:15
ax3l added 6 commits October 15, 2019 09:00
Due to old MPI instances on Trusty, we cannot compile ADIOS2.
We first need to take a newer Ubuntu release before turning them on
there.
Make declaration and implementation consistent.
Add an explicit cast from `openPMD::Extent`
(aka `std::vector< std::uint64_t >`) to `adios2::Dims`
(aka `std::vector< std::size_t >`) to avoid a compile error on
OSX:

```
include/openPMD/Datatype.hpp:558:23: error: no matching member function for call to 'operator()'
        return action.OPENPMD_TEMPLATE_OPERATOR( )< char >(
               ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

include/openPMD/Datatype.hpp:532:44: note: expanded from macro 'OPENPMD_TEMPLATE_OPERATOR'
                                           ^

src/IO/ADIOS/ADIOS2IOHandler.cpp:201:9: note: in instantiation of function template specialization 'openPMD::switchType<void, openPMD::detail::VariableDefiner, adios2::IO &, std::__1::basic_string<char> &, std::__1::unique_ptr<adios2::Operator, std::__1::default_delete<adios2::Operator> >, const std::__1::vector<unsigned long long, std::__1::allocator<unsigned long long> > &>' requested here
        switchType( parameters.dtype, detail::VariableDefiner( ),
        ^

src/IO/ADIOS/ADIOS2IOHandler.cpp:794:5: note: candidate function not viable: no known conversion from 'const vector<unsigned long long, allocator<unsigned long long>>' to 'const vector<size_t, allocator<unsigned long>>' for 4th argument
    operator( )( adios2::IO & IO, const std::string & name,
    ^

src/IO/ADIOS/ADIOS2IOHandler.cpp:804:27: note: candidate template ignored: invalid explicitly-specified argument for template parameter 'n'
    void VariableDefiner::operator( )( adios2::IO &, Params &&... )
```
@ax3l ax3l force-pushed the topic-adios2Updates branch from 2177305 to 7c5e43f Compare October 15, 2019 16:00
@ax3l ax3l changed the title [WIP] ADIOS2: Infrastructure & Docs Update ADIOS2: Infrastructure & Docs Update Oct 15, 2019
@ax3l ax3l merged commit e5be748 into openPMD:dev Oct 15, 2019
@ax3l ax3l deleted the topic-adios2Updates branch October 15, 2019 17:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant