54#define PF_TERM_MSGTAG 10
55#define PF_ENDSORT_MSGTAG 11
56#define PF_DOLLAR_MSGTAG 12
57#define PF_BUFFER_MSGTAG 20
58#define PF_ENDBUFFER_MSGTAG 21
59#define PF_READY_MSGTAG 30
60#define PF_DATA_MSGTAG 50
61#define PF_EMPTY_MSGTAG 52
62#define PF_STDOUT_MSGTAG 60
63#define PF_LOG_MSGTAG 61
64#define PF_OPT_MCTS_MSGTAG 70
65#define PF_OPT_HORNER_MSGTAG 71
66#define PF_OPT_COLLECT_MSGTAG 72
67#define PF_RUNTIME_ERROR_MSGTAG 80
68#define PF_RUNTIME_SYNC_MSGTAG 81
69#define PF_MISC_MSGTAG 100
74#if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
75# define GNUC_PREREQ(major, minor, patchlevel) \
76 ((__GNUC__ << 16) + (__GNUC_MINOR__ << 8) + __GNUC_PATCHLEVEL__ >= \
77 ((major) << 16) + ((minor) << 8) + (patchlevel))
79# define GNUC_PREREQ(major, minor, patchlevel) 0
89#if GNUC_PREREQ(4, 6, 0)
90# pragma GCC diagnostic push
91# pragma GCC diagnostic ignored "-Wpadded"
92# pragma GCC diagnostic ignored "-Wunused-parameter"
94#if defined(__clang__) && defined(__has_warning)
95# pragma clang diagnostic push
96# if __has_warning("-Wpadded")
97# pragma clang diagnostic ignored "-Wpadded"
99# if __has_warning("-Wunused-parameter")
100# pragma clang diagnostic ignored "-Wunused-parameter"
116# define OMPI_SKIP_MPICXX 1
120# define OMPI_SKIP_MPICXX 1
125#define indices ((INDICES)(AC.IndexList.lijst))
128#if GNUC_PREREQ(4, 6, 0)
129# pragma GCC diagnostic pop
131#if defined(__clang__) && defined(__has_warning)
132# pragma clang diagnostic pop
135# define PF_ANY_SOURCE MPI_ANY_SOURCE
136# define PF_ANY_MSGTAG MPI_ANY_TAG
137# define PF_COMM MPI_COMM_WORLD
138# define PF_BYTE MPI_BYTE
139# define PF_INT MPI_INT
141# define PF_WORD MPI_INT32_T
142# define PF_LONG MPI_INT64_T
143#elif BITSINWORD == 16
144# define PF_WORD MPI_INT16_T
145# define PF_LONG MPI_INT32_T
147# error Can not detect if this is a 32-bit or 64-bit platform.
166 MPI_Request *request;
202extern LONG PF_maxDollarChunkSize;
212extern int PF_Bcast(
void *buffer,
int count);
213extern int PF_Reduce(
const void *sendbuf,
void *recvbuf,
int count, MPI_Datatype type, MPI_Op op,
int root);
215extern LONG
PF_RawRecv(
int *,
void *,LONG,
int *);
218extern int PF_Pack(
const void *buffer,
size_t count, MPI_Datatype type);
219extern int PF_Unpack(
void *buffer,
size_t count, MPI_Datatype type);
222extern int PF_Send(
int to,
int tag);
223extern int PF_Receive(
int src,
int tag,
int *psrc,
int *ptag);
227extern int PF_LongSinglePack(
const void *buffer,
size_t count, MPI_Datatype type);
233extern int PF_LongMultiPackImpl(
const void *buffer,
size_t count,
size_t eSize, MPI_Datatype type);
237static inline size_t sizeof_datatype(MPI_Datatype type)
239 if ( type == PF_BYTE )
return sizeof(char);
240 if ( type == PF_INT )
return sizeof(int);
241 if ( type == PF_WORD )
return sizeof(WORD);
242 if ( type == PF_LONG )
return sizeof(LONG);
246#define PF_LongMultiPack(buffer, count, type) PF_LongMultiPackImpl(buffer, count, sizeof_datatype(type), type)
247#define PF_LongMultiUnpack(buffer, count, type) PF_LongMultiUnpackImpl(buffer, count, sizeof_datatype(type), type)
253extern int PF_Init(
int*,
char ***);
266extern int PF_StoreInsideInfo(
void);
267extern int PF_RestoreInsideInfo(
void);
int PF_LongSingleReceive(int src, int tag, int *psrc, int *ptag)
int PF_PackString(const UBYTE *str)
int PF_BroadcastPreDollar(WORD **, LONG *, int *)
int PF_RawSend(int, void *, LONG, int)
int PF_LongSingleSend(int to, int tag)
WORD PF_Deferred(WORD *, WORD)
int PF_Processor(EXPRESSIONS, WORD, WORD)
int PF_BroadcastRedefinedPreVars(void)
int PF_PrepareLongSinglePack(void)
int PF_BroadcastRHS(void)
int PF_Unpack(void *buffer, size_t count, MPI_Datatype type)
int PF_BroadcastString(UBYTE *)
int PF_Receive(int src, int tag, int *psrc, int *ptag)
LONG PF_GetSlaveTimes(void)
int PF_BroadcastExpFlags(void)
int PF_Send(int to, int tag)
int PF_BroadcastModifiedDollars(void)
int PF_Reduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype type, MPI_Op op, int root)
int PF_Init(int *, char ***)
int PF_ISendSbuf(int, int)
void PF_PreTerminate(int errorcode)
int PF_BroadcastCBuf(int bufnum)
void PF_BroadcastBuffer(WORD **buffer, LONG *length)
int PF_LongSingleUnpack(void *buffer, size_t count, MPI_Datatype type)
int PF_Pack(const void *buffer, size_t count, MPI_Datatype type)
int PF_PrepareLongMultiPack(void)
int PF_CollectModifiedDollars(void)
int PF_LongMultiPackImpl(const void *buffer, size_t count, size_t eSize, MPI_Datatype type)
int PF_RecvFile(int from, FILE *fd)
int PF_LongMultiBroadcast(void)
int PF_UnpackString(UBYTE *str)
void PF_FlushStdOutBuffer(void)
LONG PF_WriteFileToFile(int, UBYTE *, LONG)
LONG PF_BroadcastNumber(LONG)
LONG PF_RawRecv(int *, void *, LONG, int *)
int PF_LongMultiUnpackImpl(void *buffer, size_t count, size_t eSize, MPI_Datatype type)
int PF_LongSinglePack(const void *buffer, size_t count, MPI_Datatype type)
int PF_Bcast(void *buffer, int count)
int PF_SendFile(int to, FILE *fd)
int PF_BroadcastExpr(EXPRESSIONS e, FILEHANDLE *file)
void PF_ReceiveRuntimeError(void) NORETURN
int PF_InParallelProcessor(void)