9 utofu_tni_id_t *tni_ids;
12 ret = utofu_get_onesided_tnis(&tni_ids, &num_tnis);
13 if( ret != UTOFU_SUCCESS || num_tnis == 0) {
17 _xmp_utofu_tni_id = tni_ids[0];
21 ret = utofu_query_onesided_caps(_xmp_utofu_tni_id, &(_xmp_utofu_onesided_caps));
22 if( ret != UTOFU_SUCCESS ) {
27 ret = utofu_create_vcq(_xmp_utofu_tni_id, 0, &(_xmp_utofu_vcq_hdl));
28 if( ret != UTOFU_SUCCESS ) {
31 _XMP_fatal(
"utofu_create_vcq : No more VCQs can be created for this TNI.");
33 case UTOFU_ERR_NOT_AVAILABLE:
34 _XMP_fatal(
"utofu_create_vcq : The type of VCQ specified by the flags parameter cannot be created.");
36 case UTOFU_ERR_NOT_SUPPORTED:
37 _XMP_fatal(
"utofu_create_vcq : The type of VCQ specified by the flags parameter is not supported.");
44 utofu_vcq_id_t vcq_ids;
45 ret = utofu_query_vcq_id(_xmp_utofu_vcq_hdl, &vcq_ids);
46 if( ret != UTOFU_SUCCESS ) {
50 _xmp_utofu_vcq_ids = (utofu_vcq_id_t*)malloc(
sizeof(utofu_vcq_id_t) *
_XMP_world_size);
51 _xmp_utofu_vcq_ids_org = (utofu_vcq_id_t*)malloc(
sizeof(utofu_vcq_id_t) *
_XMP_world_size);
54 MPI_Allgather(&vcq_ids, 1, MPI_UINT64_T,
55 _xmp_utofu_vcq_ids, 1, MPI_UINT64_T,
60 _xmp_utofu_vcq_ids_org[i] = _xmp_utofu_vcq_ids[i];
65 utofu_set_vcq_id_path( &(_xmp_utofu_vcq_ids[i]), NULL );
69 _xmp_utofu_num_of_puts = 0;
70 _xmp_utofu_num_of_gets = 0;
72 _xmp_utofu_edata_flag_sync_images = ((1 << (8 * _xmp_utofu_onesided_caps->max_edata_size)) - 1);
73 _xmp_utofu_edata_flag_armw_puts = ((1 << (8 * _xmp_utofu_onesided_caps->max_edata_size)) - 1);
74 _xmp_utofu_edata_flag_armw_gets = ((1 << (8 * _xmp_utofu_onesided_caps->max_edata_size)) - 2);
76 MPI_Barrier(MPI_COMM_WORLD);