|
FEAT 3
Finite Element Analysis Toolbox
|
Distributed Communication namespace. More...
Classes | |
| class | Comm |
| Communicator class. More... | |
| struct | Datatype |
| Communication Datatype class. More... | |
| struct | Operation |
| Communication Operation class. More... | |
| class | Request |
| Communication Request class. More... | |
| class | RequestVector |
| Communication Request vector class. More... | |
| class | Status |
| Communication Status class. More... | |
Functions | |
| template<typename T_ > | |
| const Datatype & | autotype () |
| Automatic Datatype deduction function template. More... | |
| void | finalize () |
| Finalizes the distributed communication system. More... | |
| bool | initialize (int &argc, char **&argv) |
| Initializes the distributed communication system. More... | |
Variables | |
| const Datatype | dt__float128 |
| custom Datatype for __float128 | |
| const Datatype | dt__half |
| custom Datatype for __half | |
| const Datatype | dt_byte (MPI_BYTE, sizeof(char)) |
Datatype wrapper for MPI_BYTE. More... | |
| const Datatype | dt_char (MPI_CHAR, sizeof(char)) |
Datatype wrapper for MPI_CHAR. More... | |
| const Datatype | dt_double (MPI_DOUBLE, sizeof(double)) |
Datatype wrapper for MPI_DOUBLE. More... | |
| const Datatype | dt_float (MPI_FLOAT, sizeof(float)) |
Datatype wrapper for MPI_FLOAT. More... | |
| const Datatype | dt_long_double (MPI_LONG_DOUBLE, sizeof(long double)) |
Datatype wrapper for MPI_LONG_DOUBLE. More... | |
| const Datatype | dt_signed_char (MPI_SIGNED_CHAR, sizeof(signed char)) |
Datatype wrapper for MPI_SIGNED_CHAR. More... | |
| const Datatype | dt_signed_int (MPI_INT, sizeof(int)) |
Datatype wrapper for MPI_INT. More... | |
| const Datatype | dt_signed_int16 (MPI_INT16_T, sizeof(std::int16_t)) |
Datatype wrapper for MPI_INT16_T. More... | |
| const Datatype | dt_signed_int32 (MPI_INT32_T, sizeof(std::int32_t)) |
Datatype wrapper for MPI_INT32_T. More... | |
| const Datatype | dt_signed_int64 (MPI_INT64_T, sizeof(std::int64_t)) |
Datatype wrapper for MPI_INT64_T. More... | |
| const Datatype | dt_signed_int8 (MPI_INT8_T, sizeof(std::int8_t)) |
Datatype wrapper for MPI_INT8_T. More... | |
| const Datatype | dt_signed_long (MPI_LONG, sizeof(long)) |
Datatype wrapper for MPI_LONG. More... | |
| const Datatype | dt_signed_long_long (MPI_LONG_LONG, sizeof(long long)) |
Datatype wrapper for MPI_LONG_LONG. More... | |
| const Datatype | dt_signed_short (MPI_SHORT, sizeof(short)) |
Datatype wrapper for MPI_SHORT. More... | |
| const Datatype | dt_unsigned_char (MPI_UNSIGNED_CHAR, sizeof(unsigned char)) |
Datatype wrapper for MPI_UNSIGNED_CHAR. More... | |
| const Datatype | dt_unsigned_int (MPI_UNSIGNED, sizeof(unsigned int)) |
Datatype wrapper for MPI_UNSIGNED. More... | |
| const Datatype | dt_unsigned_int16 (MPI_UINT16_T, sizeof(std::uint16_t)) |
Datatype wrapper for MPI_UINT16_T. More... | |
| const Datatype | dt_unsigned_int32 (MPI_UINT32_T, sizeof(std::uint32_t)) |
Datatype wrapper for MPI_UINT32_T. More... | |
| const Datatype | dt_unsigned_int64 (MPI_UINT64_T, sizeof(std::uint64_t)) |
Datatype wrapper for MPI_UINT64_T. More... | |
| const Datatype | dt_unsigned_int8 (MPI_UINT8_T, sizeof(std::uint8_t)) |
Datatype wrapper for MPI_UINT8_T. More... | |
| const Datatype | dt_unsigned_long (MPI_UNSIGNED_LONG, sizeof(unsigned long)) |
Datatype wrapper for MPI_UNSIGNED_LONG. More... | |
| const Datatype | dt_unsigned_long_long (MPI_UNSIGNED_LONG_LONG, sizeof(unsigned long long)) |
Datatype wrapper for MPI_UNSIGNED_LONG_LONG. More... | |
| const Datatype | dt_unsigned_short (MPI_UNSIGNED_SHORT, sizeof(unsigned short)) |
Datatype wrapper for MPI_UNSIGNED_SHORT. More... | |
| const Datatype | dt_wchar (MPI_WCHAR, sizeof(wchar_t)) |
Datatype wrapper for MPI_WCHAR. More... | |
| const Operation | op_max (MPI_MAX) |
Operation wrapper for MPI_MAX. More... | |
| const Operation | op_min (MPI_MIN) |
Operation wrapper for MPI_MIN. More... | |
| const Operation | op_sum (MPI_SUM) |
Operation wrapper for MPI_SUM. More... | |
Distributed Communication namespace.
This namespaces encapsulates the classes required for distributed communication via the Message Passing Interface (MPI).
| const Datatype & FEAT::Dist::autotype | ( | ) |
Automatic Datatype deduction function template.
This function returns the Datatype object for any of the fundamental C/C++ datatypes.
| T_ | The fundamental C/C++ datatype whose corresponding Datatype object is to be returned. |
dt_* Datatype object representing the type T_. | void FEAT::Dist::finalize | ( | ) |
Finalizes the distributed communication system.
This function is effectively a wrapper around the MPI_Init function.
In addition, this function may perform further cleanup to release additionally defined datatype, operations, etc.
Definition at line 148 of file dist.cpp.
References FEAT::Dist::Datatype::dt, dt__float128, dt__half, FEAT::Dist::Operation::op, and op_sum.
Referenced by FEAT::Runtime::finalize().
| bool FEAT::Dist::initialize | ( | int & | argc, |
| char **& | argv | ||
| ) |
Initializes the distributed communication system.
This function is effectively a wrapper around the MPI_Init function.
In addition, this function may perform further setup to initialize additional datatypes, operations, etc.:
Definition at line 105 of file dist.cpp.
References FEAT::Dist::Datatype::dt, dt__float128, dt__half, op_max, op_min, op_sum, and XASSERTM.
Referenced by FEAT::Runtime::initialize().
| const Datatype FEAT::Dist::dt_byte | ( | MPI_BYTE | , |
| sizeof(char) | |||
| ) |
| const Datatype FEAT::Dist::dt_char | ( | MPI_CHAR | , |
| sizeof(char) | |||
| ) |
| const Datatype FEAT::Dist::dt_double | ( | MPI_DOUBLE | , |
| sizeof(double) | |||
| ) |
| const Datatype FEAT::Dist::dt_float | ( | MPI_FLOAT | , |
| sizeof(float) | |||
| ) |
| const Datatype FEAT::Dist::dt_long_double | ( | MPI_LONG_DOUBLE | , |
| sizeof(long double) | |||
| ) |
| const Datatype FEAT::Dist::dt_signed_char | ( | MPI_SIGNED_CHAR | , |
| sizeof(signed char) | |||
| ) |
| const Datatype FEAT::Dist::dt_signed_int | ( | MPI_INT | , |
| sizeof(int) | |||
| ) |
| const Datatype FEAT::Dist::dt_signed_int16 | ( | MPI_INT16_T | , |
| sizeof(std::int16_t) | |||
| ) |
| const Datatype FEAT::Dist::dt_signed_int32 | ( | MPI_INT32_T | , |
| sizeof(std::int32_t) | |||
| ) |
| const Datatype FEAT::Dist::dt_signed_int64 | ( | MPI_INT64_T | , |
| sizeof(std::int64_t) | |||
| ) |
| const Datatype FEAT::Dist::dt_signed_int8 | ( | MPI_INT8_T | , |
| sizeof(std::int8_t) | |||
| ) |
| const Datatype FEAT::Dist::dt_signed_long | ( | MPI_LONG | , |
| sizeof(long) | |||
| ) |
| const Datatype FEAT::Dist::dt_signed_long_long | ( | MPI_LONG_LONG | , |
| sizeof(long long) | |||
| ) |
| const Datatype FEAT::Dist::dt_signed_short | ( | MPI_SHORT | , |
| sizeof(short) | |||
| ) |
| const Datatype FEAT::Dist::dt_unsigned_char | ( | MPI_UNSIGNED_CHAR | , |
| sizeof(unsigned char) | |||
| ) |
| const Datatype FEAT::Dist::dt_unsigned_int | ( | MPI_UNSIGNED | , |
| sizeof(unsigned int) | |||
| ) |
| const Datatype FEAT::Dist::dt_unsigned_int16 | ( | MPI_UINT16_T | , |
| sizeof(std::uint16_t) | |||
| ) |
| const Datatype FEAT::Dist::dt_unsigned_int32 | ( | MPI_UINT32_T | , |
| sizeof(std::uint32_t) | |||
| ) |
| const Datatype FEAT::Dist::dt_unsigned_int64 | ( | MPI_UINT64_T | , |
| sizeof(std::uint64_t) | |||
| ) |
| const Datatype FEAT::Dist::dt_unsigned_int8 | ( | MPI_UINT8_T | , |
| sizeof(std::uint8_t) | |||
| ) |
| const Datatype FEAT::Dist::dt_unsigned_long | ( | MPI_UNSIGNED_LONG | , |
| sizeof(unsigned long) | |||
| ) |
| const Datatype FEAT::Dist::dt_unsigned_long_long | ( | MPI_UNSIGNED_LONG_LONG | , |
| sizeof(unsigned long long) | |||
| ) |
| const Datatype FEAT::Dist::dt_unsigned_short | ( | MPI_UNSIGNED_SHORT | , |
| sizeof(unsigned short) | |||
| ) |
| const Datatype FEAT::Dist::dt_wchar | ( | MPI_WCHAR | , |
| sizeof(wchar_t) | |||
| ) |
| const Operation FEAT::Dist::op_max | ( | MPI_MAX | ) |
Operation wrapper for MPI_MAX.
Definition at line 273 of file dist.hpp.
Referenced by FEAT::Geometry::DistributedUmbrellaSmoother< MeshType_ >::_calc_max(), FEAT::Control::Domain::PartiDomainControl< DomainLevel_ >::_create_multi_layered(), FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_create_multi_layered(), FEAT::MemoryUsage::format_peak_physical_usage(), FEAT::Global::PMDCDSCMatrix< Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, MirrorV_, MirrorP_ >, Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, MirrorP_, MirrorV_ > >::format_timings(), FEAT::Statistics::get_formatted_solver_internals(), FEAT::Statistics::get_formatted_times(), initialize(), FEAT::Global::Gate< LocalVector_, Mirror_ >::max_async(), FEAT::Control::Statistics::report(), FEAT::Control::Domain::PartiDomainControlBase< DomainLevel_ >::serialize_partitioning(), FEAT::Assembly::ScalarErrorInfo< DataType_ >::synchronize(), FEAT::Assembly::VectorErrorInfo< DataType_, dim_ >::synchronize(), and FEAT::Assembly::FunctionIntegralInfo< DataType_, ValueType_, GradientType_, HessianType_ >::synchronize().
| const Operation FEAT::Dist::op_min | ( | MPI_MIN | ) |
Operation wrapper for MPI_MIN.
Definition at line 275 of file dist.hpp.
Referenced by FEAT::Control::Domain::VoxelDomainControl< DomainLevel_ >::_create_multi_layered(), FEAT::Control::Meshopt::MeshoptControlBase< DomainControl_ >::compute_mesh_quality(), FEAT::MemoryUsage::format_peak_physical_usage(), FEAT::Statistics::get_formatted_solver_internals(), FEAT::Statistics::get_formatted_times(), initialize(), FEAT::Global::Gate< LocalVector_, Mirror_ >::min_async(), and FEAT::Control::Statistics::report().
| const Operation FEAT::Dist::op_sum | ( | MPI_SUM | ) |
Operation wrapper for MPI_SUM.
Definition at line 271 of file dist.hpp.
Referenced by FEAT::Global::MeanFilter< DT_, IT_ >::MeanFilter(), FEAT::Solver::SchwarzPrecond< Global::Vector< LocalVector_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >::apply(), FEAT::Global::PMDCDSCMatrix< Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, MirrorV_, MirrorP_ >, Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, MirrorP_, MirrorV_ > >::asm_adp_symbolic(), FEAT::Global::AlgDofParti< LAFEM::DenseVector< DT_, IT_ >, LAFEM::VectorMirror< DT_, IT_ > >::assemble_by_gate(), FEAT::Global::Matrix< LocalMatrix_, RowMirror_, ColMirror_ >::bytes(), FEAT::Control::Meshopt::MeshoptControlBase< DomainControl_ >::compute_mesh_quality(), FEAT::Global::MeanFilter< DT_, IT_ >::filter_rhs(), FEAT::Global::MeanFilter< DT_, IT_ >::filter_sol(), finalize(), FEAT::MemoryUsage::format_peak_physical_usage(), FEAT::Global::PMDCDSCMatrix< Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, MirrorV_, MirrorP_ >, Global::Matrix< LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, MirrorP_, MirrorV_ > >::format_timings(), FEAT::Global::Gate< LocalVector_, Mirror_ >::get_num_global_dofs(), initialize(), FEAT::Assembly::ScalarDiscreteEvalData< DT_, dim_ >::mean_value_dist(), FEAT::Assembly::VectorDiscreteEvalData< DT_, dim_ >::mean_value_dist(), FEAT::Assembly::MatrixDiscreteEvalData< DT_, dim_i_, dim_j_ >::mean_value_dist(), FEAT::Global::Gate< LocalVector_, Mirror_ >::norm2_async(), FEAT::Global::Gate< LocalVector_, Mirror_ >::sum_async(), FEAT::Assembly::TraceAssemblyStokesBodyForceAssemblyJob< VectorVelo_, VectorPres_, SpaceVelo_, SpacePres_ >::sync(), FEAT::Assembly::ScalarErrorInfo< DataType_ >::synchronize(), FEAT::Assembly::VectorErrorInfo< DataType_, dim_ >::synchronize(), FEAT::Assembly::FunctionIntegralInfo< DataType_, ValueType_, GradientType_, HessianType_ >::synchronize(), FEAT::Assembly::VelocityInfo< DataType_, dim_ >::synchronize(), and FEAT::Global::Matrix< LocalMatrix_, RowMirror_, ColMirror_ >::used_elements().