Skip to content
Snippets Groups Projects
Commit ca22b602 authored by William F Godoy's avatar William F Godoy
Browse files

Merge branch 'refactor' of https://github.com/williamfgc/adios2.git into refactor

parents b1c9ef99 1d8d9b0d
No related branches found
No related tags found
1 merge request!124Refactor
...@@ -38,7 +38,7 @@ int main(int argc, char *argv[]) ...@@ -38,7 +38,7 @@ int main(int argc, char *argv[])
* Parameters, Transports, and Execution: Engines */ * Parameters, Transports, and Execution: Engines */
adios::IO &adios1IO = adios.DeclareIO("ADIOS1IO"); adios::IO &adios1IO = adios.DeclareIO("ADIOS1IO");
adios1IO.SetEngine("ADIOS1Writer"); adios1IO.SetEngine("ADIOS1Writer");
adios1IO.AddTransport("file"); adios1IO.AddTransport("file", "library=MPI");
/** global array : name, { shape (total) }, { start (local) }, { count /** global array : name, { shape (total) }, { start (local) }, { count
* (local) }, all are constant dimensions */ * (local) }, all are constant dimensions */
......
...@@ -35,6 +35,7 @@ void ADIOS1Writer::Init() ...@@ -35,6 +35,7 @@ void ADIOS1Writer::Init()
{ {
InitParameters(); InitParameters();
InitTransports(); InitTransports();
m_ADIOS1.Open();
} }
#define declare_type(T) \ #define declare_type(T) \
......
...@@ -98,7 +98,8 @@ void ADIOS1Common::InitTransports( ...@@ -98,7 +98,8 @@ void ADIOS1Common::InitTransports(
adios_select_method(m_ADIOSGroup, "POSIX", "", ""); adios_select_method(m_ADIOSGroup, "POSIX", "", "");
} }
else if (itLibrary->second == "MPI_File" || else if (itLibrary->second == "MPI_File" ||
itLibrary->second == "MPI-IO") itLibrary->second == "MPI-IO" ||
itLibrary->second == "MPI")
{ {
adios_select_method(m_ADIOSGroup, "MPI", "", ""); adios_select_method(m_ADIOSGroup, "MPI", "", "");
} }
...@@ -123,14 +124,24 @@ void ADIOS1Common::InitTransports( ...@@ -123,14 +124,24 @@ void ADIOS1Common::InitTransports(
"to Open\n"); "to Open\n");
} }
} }
}
ReOpenAsNeeded(); bool ADIOS1Common::Open()
{
adios_open(&m_ADIOSFile, m_GroupName.c_str(), m_FileName.c_str(),
m_OpenModeString.c_str(), m_MPIComm);
if (adios_errno == err_no_error)
{
m_IsFileOpen = true;
}
return m_IsFileOpen;
} }
bool ADIOS1Common::ReOpenAsNeeded() bool ADIOS1Common::ReOpenAsNeeded()
{ {
if (!m_IsFileOpen) if (!m_IsFileOpen)
{ {
// Re-open in APPEND mode
adios_open(&m_ADIOSFile, m_GroupName.c_str(), m_FileName.c_str(), "a", adios_open(&m_ADIOSFile, m_GroupName.c_str(), m_FileName.c_str(), "a",
m_MPIComm); m_MPIComm);
if (adios_errno == err_no_error) if (adios_errno == err_no_error)
......
...@@ -60,6 +60,8 @@ public: ...@@ -60,6 +60,8 @@ public:
void InitParameters(const Params &parameters); void InitParameters(const Params &parameters);
void InitTransports(const std::vector<Params> &transportsParameters); void InitTransports(const std::vector<Params> &transportsParameters);
bool Open(); // return true if file is opened
bool ReOpenAsNeeded(); // return true if file is open or reopened
template <class T> template <class T>
void WriteVariable(const std::string &name, const ShapeID shapeID, void WriteVariable(const std::string &name, const ShapeID shapeID,
...@@ -76,8 +78,6 @@ private: ...@@ -76,8 +78,6 @@ private:
void Init(); void Init();
bool ReOpenAsNeeded(); // return true if file is open or reopened
void DefineVariable(const std::string &name, const ShapeID shapeID, void DefineVariable(const std::string &name, const ShapeID shapeID,
enum ADIOS_DATATYPES vartype, const std::string ldims, enum ADIOS_DATATYPES vartype, const std::string ldims,
const std::string gdims, const std::string offsets); const std::string gdims, const std::string offsets);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment