Skip to content
Snippets Groups Projects
Commit 474e6d1f authored by wfg's avatar wfg
Browse files

Renamed SingleBP to Writer

Run and tested helloWriter under examples/hello/writer
Fixed Makefile
parent 03e63505
No related branches found
No related tags found
1 merge request!8Integrate groupless
......@@ -42,8 +42,8 @@ int main( int argc, char* argv [] )
adios.DefineVariable( groupName, "myInts", "double", "myIntsSize" );
//Define method
const std::string methodName( "singleBP" );
adios.DeclareMethod( methodName, "singleBP" );
const std::string methodName( "DataManSend" );
adios.DeclareMethod( methodName, "DataMan" );
adios.AddCapsule( methodName, "Heap" );
adios.AddTransport( methodName, "POSIX", "fname=myfile.bp" );
adios.AddTransport( methodName, "TCP_IP", "fname=myfile.tcp" );
......@@ -53,9 +53,8 @@ int main( int argc, char* argv [] )
adios.SetDefaultGroup( handler, groupName );
double varDouble = 10.;
adios.Write( handler, "myIntsSize", &varDouble );
adios.Write( handler, "myInts", &myInts.front() );
adios.Write( 10, "myInts", &myInts.front() );
adios.Write<double>( handler, "myIntsSize", &varDouble );
adios.Write<double>( handler, "myInts", &myInts.front() );
adios.Close( handler );
}
catch( std::invalid_argument& e )
......
......@@ -3,7 +3,7 @@
# Author: wfg
BASE_NAME=helloSingleBP_OOP
BASE_NAME=helloWriter_OOP
TOOL_DIR=/usr/bin
......@@ -25,10 +25,10 @@ CFLAGS=-Wall -O0 -g -Wpedantic -std=c++11
all: mpi
mpi: $(ADIOS_LIB) $(ADIOS_HFiles)
$(MPICC) $(CFLAGS) $(ADIOS_INCLUDE) -DHAVE_MPI $(BASE_NAME).cpp -o $(BASE_NAME)_mpi $(ADIOS_LIB)
$(MPICC) $(CFLAGS) $(ADIOS_INCLUDE) -DHAVE_MPI $(BASE_NAME).cpp -o $(BASE_NAME)_mpi $(ADIOS_LIB) -lpthread
nompi: $(ADIOS_NOMPI_LIB) $(NoMPI_HFiles)
$(CC) $(CFLAGS) $(ADIOS_INCLUDE) $(BASE_NAME).cpp -o $(BASE_NAME)_nompi $(ADIOS_NOMPI_LIB)
$(CC) $(CFLAGS) $(ADIOS_INCLUDE) $(BASE_NAME).cpp -o $(BASE_NAME)_nompi $(ADIOS_NOMPI_LIB) -lpthread
clean:
rm *_mpi; rm *_nompi
......
......@@ -42,16 +42,16 @@ int main( int argc, char* argv [] )
adios.DefineVariable( groupName, "myInts", "double", "myIntsSize" );
//Define method
const std::string methodName( "singleBP" );
adios.DeclareMethod( methodName, "singleBP" );
adios.AddCapsule( methodName, "buffer=Heap" );
adios.AddTransport( methodName, "transport=POSIX" );
const std::string methodName( "IntsWriter" );
adios.DeclareMethod( methodName, "Writer" );
adios.AddCapsule( methodName, "Heap" );
adios.AddTransport( methodName, "POSIX" );
//Create engine handler and Write
int handler = adios.Open( "myInts.bp", "w", methodName );
adios.SetDefaultGroup( handler, groupName );
adios.Write( handler, "myIntsSize", &myIntsSize );
adios.Write( handler, "myInts", &myInts.front() );
adios.Write<int>( handler, "myIntsSize", &myIntsSize );
adios.Write<double>( handler, "myInts", &myInts.front() );
adios.Close( handler );
}
catch( std::invalid_argument& e )
......
......@@ -40,16 +40,16 @@ int main( int argc, char* argv [] )
group.DefineVariable( "myInts", "double", "myIntsSize" ); //define variable with associate size
//Define method
adios::Method method; //( "SingleBP", adiosDebug );
adios::Method method( "Writer");
method.AddCapsule( "Heap" );
method.AddTransport( "POSIX", "have_metadata_file=0" );
//Create engine and Write
adios::engine::SingleBP singleBP( "myInts.bp", "w", MPI_COMM_WORLD, method, adiosDebug );
singleBP.SetDefaultGroup( group );
singleBP.Write( "myIntsSize", &myIntsSize );
singleBP.Write( "myInts", &myInts.front() );
singleBP.Close( );
adios::Writer writer( "myInts.bp", "w", MPI_COMM_WORLD, method, adiosDebug );
writer.SetDefaultGroup( group );
writer.Write( "myIntsSize", &myIntsSize );
writer.Write( "myInts", &myInts.front() );
writer.Close( );
}
catch( std::invalid_argument& e )
{
......
......@@ -129,7 +129,7 @@ public: // PUBLIC Constructors and Functions define the User Interface with ADIO
* @param name
* @param type
*/
void DeclareMethod( const std::string methodName, const std::string type = "SingleBP" );
void DeclareMethod( const std::string methodName, const std::string type );
/**
* Add a capsule type to method name defined from DeclareMethod
......@@ -137,13 +137,13 @@ public: // PUBLIC Constructors and Functions define the User Interface with ADIO
* @param args variadic parameters with format parameter=value
*/
template< class ...Args>
void AddCapsule( const std::string methodName, const Args... args )
void AddCapsule( const std::string methodName, const std::string type, const Args... args )
{
auto itMethod = m_Methods.find( methodName );
if( m_DebugMode == true )
CheckMethod( itMethod, methodName, " from call to AddBuffer\n" );
itMethod->second.AddCapsule( args... );
itMethod->second.AddCapsule( type, args... );
}
/**
......@@ -152,13 +152,13 @@ public: // PUBLIC Constructors and Functions define the User Interface with ADIO
* @param args variadic parameters with format parameter=value
*/
template< class ...Args>
void AddTransport( const std::string methodName, const Args... args )
void AddTransport( const std::string methodName, const std::string type, const Args... args )
{
auto itMethod = m_Methods.find( methodName );
if( m_DebugMode == true )
CheckMethod( itMethod, methodName, " from call to AddTransport\n" );
itMethod->second.AddTransport( args... );
itMethod->second.AddTransport( type, args... );
}
/**
......
......@@ -11,9 +11,9 @@
#include "core/Group.h"
#include "core/Method.h"
#include "engine/Writer.h"
//TRANSFORMS
#include "engine/SingleBP.h"
#include "transform/BZip2.h"
......
......@@ -26,7 +26,7 @@ class Method
public:
const std::string m_Type = "SingleBP"; ///< Method type
const std::string m_Type; ///< Method type
const bool m_DebugMode = false; ///< true: on, throws exceptions and do additional checks, false: off, faster, but unsafe
std::vector< std::map<std::string, std::string> > m_CapsuleParameters; ///< each is a separate Transport containing their own parameters
std::vector< std::map<std::string, std::string> > m_TransportParameters; ///< each is a separate Transport containing their own parameters
......@@ -35,7 +35,7 @@ public:
* Unique constructor, must have a type
* @param type must be an engine type, default = SingleBP
*/
Method( const std::string type = "", const bool debugMode = false );
Method( const std::string type, const bool debugMode = false );
~Method( );
......
......@@ -5,35 +5,33 @@
* Author: wfg
*/
#ifndef SINGLEBP_H_
#define SINGLEBP_H_
#ifndef WRITER_H_
#define WRITER_H_
#include "core/Engine.h"
namespace adios
{
namespace engine
{
class SingleBP : public Engine
class Writer : public Engine
{
public:
/**
* Constructor for single BP capsule engine, writes in BP format into a single heap capsule
* Constructor for Writer writes in BP format into a single heap capsule, manages several transports
* @param name unique name given to the engine
* @param accessMode
* @param mpiComm
* @param method
* @param debugMode
*/
SingleBP( const std::string name, const std::string accessMode, MPI_Comm mpiComm,
Writer( const std::string name, const std::string accessMode, MPI_Comm mpiComm,
const Method& method, const bool debugMode = false, const unsigned int cores = 1 );
~SingleBP( );
~Writer( );
void Write( Group& group, const std::string variableName, const char* values );
void Write( Group& group, const std::string variableName, const unsigned char* values );
......@@ -72,8 +70,7 @@ private:
};
} //end namespace engine
} //end namespace adios
#endif /* SINGLEBP_H_ */
#endif /* WRITER_H_ */
......@@ -6,6 +6,7 @@
*/
/// \cond EXCLUDE_FROM_DOXYGEN
#include <engine/Writer.h>
#include <iostream>
#include <fstream>
#include <sstream>
......@@ -16,7 +17,6 @@
#include "functions/adiosFunctions.h"
//Engine
#include "engine/SingleBP.h"
namespace adios
{
......@@ -115,9 +115,9 @@ unsigned int ADIOS::Open( const std::string name, const std::string accessMode,
++m_EngineCounter;
const std::string type( itMethod->second.m_Type );
if( type == "SingleBP" || type == "singleBP" || type == "singlebp" )
if( type == "Writer" || type == "writer" )
{
m_Engines.emplace( m_EngineCounter, std::make_shared<engine::SingleBP>( name, accessMode, mpiComm, itMethod->second, cores ) );
m_Engines.emplace( m_EngineCounter, std::make_shared<Writer>( name, accessMode, mpiComm, itMethod->second, cores ) );
}
// else if( type == "SIRIUS" )
// {
......
......@@ -52,16 +52,16 @@ void Method::AddTransportParameters( const std::string type, const std::vector<s
throw std::invalid_argument( "ERROR: first argument in AddTransport must be a single word for transport\n" );
}
std::map<std::string, std::string> mapParameters = BuildParametersMap(parameters, m_DebugMode);
std::map<std::string, std::string> mapParameters = BuildParametersMap( parameters, m_DebugMode );
if( m_DebugMode == true )
{
if( mapParameters.count("transport") )
if( mapParameters.count("transport") == 1 )
std::invalid_argument( "ERROR: transport can't be redefined with transport=, "
"must be the first argument, in AddTransportParameters( transport, ...);\n" );
}
mapParameters["transport"] = type;
m_TransportParameters.push_back( BuildParametersMap(parameters, m_DebugMode) );
m_TransportParameters.push_back( mapParameters );
}
......
......@@ -7,7 +7,7 @@
#include <iostream>
#include "engine/SingleBP.h"
#include "engine/Writer.h"
#include "core/Support.h"
//supported capsules
......@@ -21,170 +21,168 @@
namespace adios
{
namespace engine
{
SingleBP::SingleBP( const std::string streamName, const std::string accessMode, const MPI_Comm mpiComm,
Writer::Writer( const std::string streamName, const std::string accessMode, const MPI_Comm mpiComm,
const Method& method, const bool debugMode, const unsigned int cores ):
Engine( "SingleBP", streamName, accessMode, mpiComm, method, debugMode, cores, " SingleBP constructor (or call to ADIOS Open).\n" )
Engine( "Writer", streamName, accessMode, mpiComm, method, debugMode, cores, " Writer constructor (or call to ADIOS Open).\n" )
{
Init( );
}
SingleBP::~SingleBP( )
Writer::~Writer( )
{ }
void SingleBP::Init( )
void Writer::Init( )
{
InitCapsules( );
InitTransports( );
}
void SingleBP::Write( Group& group, const std::string variableName, const char* values )
void Writer::Write( Group& group, const std::string variableName, const char* values )
{
}
void SingleBP::Write( Group& group, const std::string variableName, const unsigned char* values )
void Writer::Write( Group& group, const std::string variableName, const unsigned char* values )
{
}
void SingleBP::Write( Group& group, const std::string variableName, const short* values )
void Writer::Write( Group& group, const std::string variableName, const short* values )
{
}
void SingleBP::Write( Group& group, const std::string variableName, const unsigned short* values )
void Writer::Write( Group& group, const std::string variableName, const unsigned short* values )
{
}
void SingleBP::Write( Group& group, const std::string variableName, const int* values )
void Writer::Write( Group& group, const std::string variableName, const int* values )
{
}
void SingleBP::Write( Group& group, const std::string variableName, const unsigned int* values )
void Writer::Write( Group& group, const std::string variableName, const unsigned int* values )
{
}
void SingleBP::Write( Group& group, const std::string variableName, const long int* values )
void Writer::Write( Group& group, const std::string variableName, const long int* values )
{
}
void SingleBP::Write( Group& group, const std::string variableName, const unsigned long int* values )
void Writer::Write( Group& group, const std::string variableName, const unsigned long int* values )
{
}
void SingleBP::Write( Group& group, const std::string variableName, const long long int* values )
void Writer::Write( Group& group, const std::string variableName, const long long int* values )
{
}
void SingleBP::Write( Group& group, const std::string variableName, const unsigned long long int* values )
void Writer::Write( Group& group, const std::string variableName, const unsigned long long int* values )
{
}
void SingleBP::Write( Group& group, const std::string variableName, const float* values )
void Writer::Write( Group& group, const std::string variableName, const float* values )
{
}
void SingleBP::Write( Group& group, const std::string variableName, const double* values )
void Writer::Write( Group& group, const std::string variableName, const double* values )
{
//auto index = PreSetVariable( group, variableName, Support::DatatypesAliases.at("double"), " from call to Write double*" );
}
void SingleBP::Write( Group& group, const std::string variableName, const long double* values )
void Writer::Write( Group& group, const std::string variableName, const long double* values )
{
}
void SingleBP::Write( const std::string variableName, const char* values )
void Writer::Write( const std::string variableName, const char* values )
{
}
void SingleBP::Write( const std::string variableName, const unsigned char* values )
void Writer::Write( const std::string variableName, const unsigned char* values )
{
}
void SingleBP::Write( const std::string variableName, const short* values )
void Writer::Write( const std::string variableName, const short* values )
{
}
void SingleBP::Write( const std::string variableName, const unsigned short* values )
void Writer::Write( const std::string variableName, const unsigned short* values )
{
}
void SingleBP::Write( const std::string variableName, const int* values )
void Writer::Write( const std::string variableName, const int* values )
{
auto index = PreSetVariable( *m_Group, variableName, Support::DatatypesAliases.at("int"), " from call to Write int*" );
std::cout << "Hello from SingleBP Write integer with index " << index << "\n";
std::cout << "Hello from Writer for an integer with index " << index << "\n";
// Variable<int>& variable = m_Group->m_Int[index];
// variable.Values = values;
// auto localDimensions = m_Group->GetDimensions( variable.DimensionsCSV );
}
void SingleBP::Write( const std::string variableName, const unsigned int* values )
void Writer::Write( const std::string variableName, const unsigned int* values )
{
}
void SingleBP::Write( const std::string variableName, const long int* values )
void Writer::Write( const std::string variableName, const long int* values )
{
}
void SingleBP::Write( const std::string variableName, const unsigned long int* values )
void Writer::Write( const std::string variableName, const unsigned long int* values )
{
}
void SingleBP::Write( const std::string variableName, const long long int* values )
void Writer::Write( const std::string variableName, const long long int* values )
{
}
void SingleBP::Write( const std::string variableName, const unsigned long long int* values )
void Writer::Write( const std::string variableName, const unsigned long long int* values )
{
}
void SingleBP::Write( const std::string variableName, const float* values )
void Writer::Write( const std::string variableName, const float* values )
{
}
void SingleBP::Write( const std::string variableName, const double* values )
void Writer::Write( const std::string variableName, const double* values )
{
auto index = PreSetVariable( *m_Group, variableName, Support::DatatypesAliases.at("double"), " from call to Write double*" );
std::cout << "Hello from SingleBP Write double with index " << index << "\n";
}
void SingleBP::Write( const std::string variableName, const long double* values )
void Writer::Write( const std::string variableName, const long double* values )
{
}
void SingleBP::InitCapsules( )
void Writer::InitCapsules( )
{
if( m_DebugMode == true )
{
......@@ -212,7 +210,7 @@ void SingleBP::InitCapsules( )
void SingleBP::InitTransports( )
void Writer::InitTransports( )
{
std::set< std::string > transportStreamNames; //used to check for name conflict between transports
......@@ -266,7 +264,6 @@ void SingleBP::InitTransports( )
m_Transports.back()->Open( m_Name, m_AccessMode );
else
m_Transports.back()->Open( m_Name, m_AccessMode );
}
else if( transportsSize == 0 )
{
......@@ -278,6 +275,5 @@ void SingleBP::InitTransports( )
} //end namespace engine
} //end namespace adios
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