コード例 #1
0
ファイル: torus.c プロジェクト: wilseypa/ROSS
void torus_mapping(void)
{
  tw_lpid kpid;
  tw_pe * pe;
  int nkp_per_pe=16;

  for(kpid = 0; kpid < nkp_per_pe; kpid++)
   tw_kp_onpe(kpid, g_tw_pe[0]);

  int i;
  for(i = 0; i < nlp_nodes_per_pe; i++)
   {
     kpid = i % g_tw_nkp;
     pe = tw_getpe(kpid % g_tw_npe);
     tw_lp_onpe(i, pe, g_tw_mynode * nlp_nodes_per_pe + i + getRem() );
     tw_lp_onkp(g_tw_lp[i], g_tw_kp[kpid]);
     tw_lp_settype(i, &nodes_lps[0]);
   }
  for(i = 0; i < nlp_mpi_procs_per_pe; i++)
   {
     kpid = i % g_tw_nkp;
     pe = tw_getpe(kpid % g_tw_npe);
     tw_lp_onpe(nlp_nodes_per_pe+i, pe, N_nodes + g_tw_mynode * nlp_mpi_procs_per_pe + i + getRem() );
     tw_lp_onkp(g_tw_lp[nlp_nodes_per_pe + i], g_tw_kp[kpid]);
     tw_lp_settype(nlp_nodes_per_pe + i, &nodes_lps[1]);
   }
}
コード例 #2
0
int main(int argc, char * argv[]) {
  int NumPE = 0;
  int i = 0;
  tw_lp *lp;
  tw_kp *kp;
  g_tw_ts_end = 300;
  g_tw_gvt_interval = 16;

  printf("Please enter the number of processors: ");
  scanf("%d",&NumPE);

  if(NumPE < 1 && NumPE > 4){
    printf("Invalid number of processors %d\n", NumPE);
    exit(0);
  }
  /* tw_lptype NumPE NumKP NumLP Message_Size*/
  
  tw_init(airport_lps, NumPE, 3, 3, sizeof(Msg_Data));
  
  for(i = 0; i < 3; i++){
    lp = tw_getlp(i);
    kp = tw_getkp(i);
    tw_lp_settype(lp, AIR_LP);
    tw_lp_onkp(lp, kp);
    
    if(i >= NumPE){
      tw_lp_onpe(lp, tw_getpe(NumPE - 1));
      tw_kp_onpe(kp, tw_getpe(NumPE - 1));
    }
    else {
      tw_lp_onpe(lp, tw_getpe(i));
      tw_kp_onpe(kp, tw_getpe(i));
    }
  }
  tw_run();

  printf("Number of Landings: %d\n", NumLanded);

  return 0;
}
コード例 #3
0
ファイル: tw-setup.c プロジェクト: ecamiloinacio/ROSS
void map_round_robin(void) {
    tw_pe   *pe;

    int  kpid;
    int  i;

    for(i = 0; i < g_tw_nlp; i++) {
        kpid = i % g_tw_nkp;
        pe = tw_getpe(kpid % g_tw_npe);

        tw_lp_onpe(i, pe, g_tw_lp_offset+i);
        tw_kp_onpe(kpid, pe);
        tw_lp_onkp(g_tw_lp[i], g_tw_kp[kpid]);

#if VERIFY_MAPPING
        printf("LP %4d KP %4d PE %4d\n", i, kp->id, pe->id);
#endif
    }
}