Go to the documentation of this file.
18 #ifndef __LIB_LIBMPI_MPIHOST_H
19 #define __LIB_LIBMPI_MPIHOST_H
21 #include <arpa/inet.h>
22 #include <netinet/in.h>
187 const Size size)
const;
Index< Node, MaximumNodes > m_nodes
Contains all known nodes that participate in the computation.
Result receivePacket(const Size nodeId, const MpiProxy::Operation operation, void *packet, Size &size)
Receive UDP packet from remote node.
uint MPI_Comm
Communicator identifier.
virtual Result initialize(int *argc, char ***argv)
Initialize the backend.
Index is a N-sized array of pointers to items of type T.
Result startProcesses(int argc, char **argv)
Start remote processes.
Implements a MPI backend for the host OS which communicates with mpiproxy servers.
uint MPI_Status
Status holder.
virtual Result receive(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status)
Synchronous receive data.
Result sendPacket(const Size nodeId, const void *packet, const Size size) const
Send UDP packet to a remote node.
u16 udpPort
< IP address of the node
unsigned short u16
Unsigned 16-bit number.
unsigned int u32
Unsigned 32-bit number.
virtual Result send(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)
Synchronous send data.
unsigned int Size
Any sane size indicator cannot go negative.
Describes a remote CPU node accessible via MPI.
MPI_Datatype
Named Predefined Datatypes.
Index< List< Packet * >, MaximumNodes > m_packetBuffers
Buffers incoming packets for later processing.
int m_sock
UDP socket for communicating with remote nodes.
Represents a Message Passing Interface (MPI) implementation backend.
virtual Result terminate()
Terminate the backend.
unsigned char u8
Unsigned 8-bit number.
u32 coreId
< UDP port of the node
Describes data received via UDP.
virtual Result getCommSize(MPI_Comm comm, int *size)
Retrieve communication size (total cores)
Operation
Encodes various MPI operations.
Result parseHostsFile(const char *hostsfile)
Parse the given hosts file.
virtual Result getCommRank(MPI_Comm comm, int *rank)
Retrieve communication rank (core id)
static const Size MaximumNodes
Maximum number of supported nodes.