44 #define PF_TERM_MSGTAG 10
45 #define PF_ENDSORT_MSGTAG 11
46 #define PF_DOLLAR_MSGTAG 12
47 #define PF_BUFFER_MSGTAG 20
48 #define PF_ENDBUFFER_MSGTAG 21
49 #define PF_READY_MSGTAG 30
50 #define PF_DATA_MSGTAG 50
51 #define PF_EMPTY_MSGTAG 52
52 #define PF_STDOUT_MSGTAG 60
53 #define PF_LOG_MSGTAG 61
54 #define PF_OPT_MCTS_MSGTAG 70
55 #define PF_OPT_HORNER_MSGTAG 71
56 #define PF_OPT_COLLECT_MSGTAG 72
57 #define PF_MISC_MSGTAG 100
62 #if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
63 # define GNUC_PREREQ(major, minor, patchlevel) \
64 ((__GNUC__ << 16) + (__GNUC_MINOR__ << 8) + __GNUC_PATCHLEVEL__ >= \
65 ((major) << 16) + ((minor) << 8) + (patchlevel))
67 # define GNUC_PREREQ(major, minor, patchlevel) 0
77 #if GNUC_PREREQ(4, 6, 0)
78 # pragma GCC diagnostic push
79 # pragma GCC diagnostic ignored "-Wpadded"
80 # pragma GCC diagnostic ignored "-Wunused-parameter"
82 #if defined(__clang__) && defined(__has_warning)
83 # pragma clang diagnostic push
84 # if __has_warning("-Wpadded")
85 # pragma clang diagnostic ignored "-Wpadded"
87 # if __has_warning("-Wunused-parameter")
88 # pragma clang diagnostic ignored "-Wunused-parameter"
111 #define indices ((INDICES)(AC.IndexList.lijst))
114 #if GNUC_PREREQ(4, 6, 0)
115 # pragma GCC diagnostic pop
117 #if defined(__clang__) && defined(__has_warning)
118 # pragma clang diagnostic pop
121 # define PF_ANY_SOURCE MPI_ANY_SOURCE
122 # define PF_ANY_MSGTAG MPI_ANY_TAG
123 # define PF_COMM MPI_COMM_WORLD
124 # define PF_BYTE MPI_BYTE
125 # define PF_INT MPI_INT
127 # define PF_WORD MPI_SHORT
128 # define PF_LONG MPI_LONG
129 # elif defined(LLP64)
130 # define PF_WORD MPI_INT
131 # define PF_LONG MPI_LONG_LONG_INT
133 # define PF_WORD MPI_INT
134 # define PF_LONG MPI_LONG
153 MPI_Request *request;
184 PADPOSITION(2,0,8,2,0);
190 extern LONG PF_maxDollarChunkSize;
200 extern int PF_Bcast(
void *buffer,
int count);
202 extern LONG
PF_RawRecv(
int *,
void *,LONG,
int *);
205 extern int PF_Pack(
const void *buffer,
size_t count, MPI_Datatype type);
206 extern int PF_Unpack(
void *buffer,
size_t count, MPI_Datatype type);
209 extern int PF_Send(
int to,
int tag);
210 extern int PF_Receive(
int src,
int tag,
int *psrc,
int *ptag);
214 extern int PF_LongSinglePack(
const void *buffer,
size_t count, MPI_Datatype type);
220 extern int PF_LongMultiPackImpl(
const void *buffer,
size_t count,
size_t eSize, MPI_Datatype type);
224 static inline size_t sizeof_datatype(MPI_Datatype type)
226 if ( type == PF_BYTE )
return sizeof(char);
227 if ( type == PF_INT )
return sizeof(int);
228 if ( type == PF_WORD )
return sizeof(WORD);
229 if ( type == PF_LONG )
return sizeof(LONG);
233 #define PF_LongMultiPack(buffer, count, type) PF_LongMultiPackImpl(buffer, count, sizeof_datatype(type), type)
234 #define PF_LongMultiUnpack(buffer, count, type) PF_LongMultiUnpackImpl(buffer, count, sizeof_datatype(type), type)
240 extern int PF_Init(
int*,
char ***);
252 extern int PF_StoreInsideInfo(
void);
253 extern int PF_RestoreInsideInfo(
void);
int PF_Init(int *argc, char ***argv)
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_LongSingleReceive(int src, int tag, int *psrc, int *ptag)
int PF_BroadcastCBuf(int bufnum)
int PF_LongMultiPackImpl(const void *buffer, size_t count, size_t eSize, MPI_Datatype type)
void PF_BroadcastBuffer(WORD **buffer, LONG *length)
int PF_Unpack(void *buffer, size_t count, MPI_Datatype type)
int PF_BroadcastString(UBYTE *str)
int PF_BroadcastExpFlags(void)
int PF_PackString(const UBYTE *str)
WORD PF_Deferred(WORD *term, WORD level)
int PF_LongMultiBroadcast(void)
int PF_InParallelProcessor(void)
LONG PF_GetSlaveTimes(void)
int PF_BroadcastExpr(EXPRESSIONS e, FILEHANDLE *file)
int PF_LongMultiUnpackImpl(void *buffer, size_t count, size_t eSize, MPI_Datatype type)
int PF_SendFile(int to, FILE *fd)
int PF_BroadcastRedefinedPreVars(void)
int PF_ISendSbuf(int to, int tag)
int PF_PrepareLongMultiPack(void)
int PF_LongSingleSend(int to, int tag)
LONG PF_BroadcastNumber(LONG x)
int PF_RawSend(int dest, void *buf, LONG l, int tag)
int PF_Bcast(void *buffer, int count)
int PF_LongSinglePack(const void *buffer, size_t count, MPI_Datatype type)
int PF_CollectModifiedDollars(void)
int PF_Terminate(int errorcode)
int PF_BroadcastPreDollar(WORD **dbuffer, LONG *newsize, int *numterms)
int PF_Send(int to, int tag)
LONG PF_WriteFileToFile(int handle, UBYTE *buffer, LONG size)
void PF_FlushStdOutBuffer(void)
int PF_PrepareLongSinglePack(void)
int PF_UnpackString(UBYTE *str)
int PF_Processor(EXPRESSIONS e, WORD i, WORD LastExpression)
int PF_BroadcastModifiedDollars(void)
int PF_RecvFile(int from, FILE *fd)
LONG PF_RawRecv(int *src, void *buf, LONG thesize, int *tag)
int PF_Receive(int src, int tag, int *psrc, int *ptag)
int PF_BroadcastRHS(void)