diff --git a/examples/heatTransfer/write/CMakeLists.txt b/examples/heatTransfer/write/CMakeLists.txt index 426c51240b85c86a6a28f1efc98de9610a89fdcb..b559584822c58708fe15a99314f5cbf32bc37473 100644 --- a/examples/heatTransfer/write/CMakeLists.txt +++ b/examples/heatTransfer/write/CMakeLists.txt @@ -16,6 +16,8 @@ if(ADIOS2_HAVE_MPI) PRIVATE ${MPI_C_INCLUDE_PATH} ) target_link_libraries(heatTransfer_write_adios2 adios2 ${MPI_C_LIBRARIES}) + target_compile_definitions(heatTransfer_write_adios2 PRIVATE + -DDEFAULT_CONFIG=${CMAKE_CURRENT_SOURCE_DIR}/config.xml) if(ADIOS2_HAVE_ADIOS1) find_package(ADIOS1 REQUIRED) diff --git a/examples/heatTransfer/write/IO_adios2.cpp b/examples/heatTransfer/write/IO_adios2.cpp index 7abf122a2c14c2c176d793ac7ea6465739ad4fb1..e795d5976ef61e74f0c7613c5b41b411f1bb50d5 100644 --- a/examples/heatTransfer/write/IO_adios2.cpp +++ b/examples/heatTransfer/write/IO_adios2.cpp @@ -14,6 +14,13 @@ #include <adios2.h> +#define str_helper(X) #X +#define str(X) str_helper(X) +#ifndef DEFAULT_CONFIG +#define DEFAULT_CONFIG config.xml +#endif +#define DEFAULT_CONFIG_STR str(DEFAULT_CONFIG) + static int rank_saved; adios2::ADIOS *ad = nullptr; std::shared_ptr<adios2::Engine> bpWriter; @@ -24,7 +31,8 @@ IO::IO(const Settings &s, MPI_Comm comm) { rank_saved = s.rank; m_outputfilename = s.outputfile + ".bp"; - ad = new adios2::ADIOS("config.xml", comm, adios2::DebugON); + ad = new adios2::ADIOS(std::string(DEFAULT_CONFIG_STR), comm, + adios2::DebugON); // Define method for engine creation diff --git a/examples/heatTransfer/write/config.xml b/examples/heatTransfer/write/config.xml index 2aca2b3fea7a870d2d371f19ba58c6a985b5a04f..7013154c4b54deae67c679c66d83ae80ffc5b9d1 100644 --- a/examples/heatTransfer/write/config.xml +++ b/examples/heatTransfer/write/config.xml @@ -1,13 +1,14 @@ <?xml version="1.0"?> -<!-- Config XML file fo the heatTransfer_write_adios2 executable from - IO_adios2.cpp --> +<!-- Config XML file fo the heatTransfer_write_adios2 executable in . + build/bin from IO_adios2.cpp --> <adios-config> <io name="output"> <engine type="BPFileWriter"> - <!-- for vectorized memory operations --> - <parameter key="Threads" value="1"/> + <!-- for vectorized memory operations, make sure your system + enables threads--> + <parameter key="Threads" value="2"/> <!-- Microseconds (default), Milliseconds, Seconds, Minutes, Hours --> @@ -17,12 +18,15 @@ (applications might choose an optimal value) --> <!--<parameter key="InitialBufferSize" value="16Kb"/> --> - <!-- XXKb, XXMb, or XXXGb supported, default=Unlimited or - maximum at each time step + <!-- XXKb, XXMb, or XXXGb supported, default=Unlimited (until + fails), maximum at each time step (applications might choose an optimal value) --> - <!-- <parameter key="MaxBufferSize" value="50Mb"/> --> + <!-- <parameter key="MaxBufferSize" value="2Gb"/> --> - <!-- exponential growth factor > 1, default = 1.05 --> + <!-- exponential growth factor > 1, default = 1.05 + 1.05 is good for a few large variables, for many small + variables increase the value to 1.5 to 2 + (optimal value is application dependent)--> <parameter key="BufferGrowthFactor" value="1.05"/> </engine> @@ -34,7 +38,8 @@ <!-- For read/write, Microseconds (default), Milliseconds, Seconds, Minutes, Hours. open/close always in Microseconds --> - <parameter key="ProfileUnits" value="Milliseconds"/> + <parameter key="ProfileUnits" value="Microseconds"/> + </transport> </io> </adios-config>