/*====================================================================*/ /* QMP Method /*====================================================================*/ /*--------------------------------------------------------------------*/ /* Node A posts receive */ int size; char *buf; QMP_msgmem_t mm; QMP_msghandle_t mh; buf = (char *)QMP_allocate_aligned_memory(size); mm = QMP_declare_msgmem(buf, size); mh = QMP_declare_receive_from(mm, src_node, 0); QMP_start(mh); (do some computing) QMP_wait(mh); QMP_free_aligned_memory(buf); /*--------------------------------------------------------------------*/ /* Node B posts send */ int size; char *buf; QMP_msgmem_t mm; QMP_msghandle_t mh; buf = (char *)QMP_allocate_aligned_memory(size); mm = QMP_declare_msgmem(buf, size); mh = QMP_declare_send_to(mm, dest_node, 0); QMP_start(mh); (do some computing) QMP_wait(mh); QMP_free_aligned_memory(buf); /*--------------------------------------------------------------------*/ /* QMP barrier */ int msec = 10000; status = QMP_wait_for_barrier(msec); /*--------------------------------------------------------------------*/ /* QMP global sum */ float fpt; QMP_sum_float(&fpt); /*--------------------------------------------------------------------*/ /* QMP general reduction example */ /*--------------------------------------------------------------------*/ /* Broadcast */ char buf[size]; QMP_broadcast(buf, size);