コード例 #1
0
ファイル: ddi_armci.c プロジェクト: andremirt/v_cond
/** @see ddi_armci.h */
void DDI_ARMCI_Counters_init() {
  int i;
  const DDI_Comm *comm = (const DDI_Comm *) Comm_find(DDI_COMM_WORLD);

  /* The offsets should be the same on all processes. */
  size_t dlb_counter_offset = (size_t)(gv(dlb_counter)) - (size_t)(gv(dda_index));
  size_t gdlb_counter_offset = (size_t)(gv(gdlb_counter)) - (size_t)(gv(dda_index));
  for (i = 0; i < comm->np; ++i) {
    gv(armci_dlb_counter)[i] = gv(armci_mem_addr)[i] + dlb_counter_offset;
    gv(armci_gdlb_counter)[i] = gv(armci_mem_addr)[i] + gdlb_counter_offset;
  }

  ARMCI_PutValueInt(0, gv(dlb_counter), comm->me);
  ARMCI_PutValueInt(0, gv(gdlb_counter), comm->me);
}
コード例 #2
0
ファイル: ddi_armci.c プロジェクト: ryanolson/ddi
void DDI_ARMCI_GDLBReset() {
    const DDI_Comm *comm = (const DDI_Comm *) Comm_find(DDI_COMM_WORLD);

    // reset counter
    if (comm->me == 0) ARMCI_PutValueInt(0, (void*)gv(gdlb_counter), 0);
}
コード例 #3
0
ファイル: ddi_armci.c プロジェクト: ryanolson/ddi
void DDI_ARMCI_DLBReset() {
    const DDI_Comm *comm = (const DDI_Comm *) Comm_find(DDI_WORKING_COMM);

    // reset counter
    if (comm->me == 0) ARMCI_PutValueInt(0, (void*)gv(dlb_counter), comm->global_pid[0]);
}
コード例 #4
0
ファイル: ddi_armci.c プロジェクト: andremirt/v_cond
/** @see ddi_armci.h */
void DDI_ARMCI_GDLBReset() {
    const DDI_Comm *comm = (const DDI_Comm *) Comm_find(DDI_COMM_WORLD);
    int armciPid = comm->me;
    if (armciPid == 0) ARMCI_PutValueInt(0, gv(gdlb_counter), 0);
}
コード例 #5
0
ファイル: ddi_armci.c プロジェクト: andremirt/v_cond
/** @see ddi_armci.h */
void DDI_ARMCI_DLBReset() {
    const DDI_Comm *comm = (const DDI_Comm *) Comm_find(DDI_WORKING_COMM);
    int pid = comm->me;
    int armciPid = comm->global_pid[pid];
    if (pid == 0) ARMCI_PutValueInt(0, gv(dlb_counter), armciPid);
}