The last patch for Windows support. Mostly casting and conversion to C++ friendly headers.
This commit was SVN r11400.
Этот коммит содержится в:
родитель
b8f54ae381
Коммит
3f0a7cad9e
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -251,7 +251,7 @@
|
|||||||
MPI_Fint attr_val = translate_to_fortran_mpi1(attribute); \
|
MPI_Fint attr_val = translate_to_fortran_mpi1(attribute); \
|
||||||
(*((keyval_obj->delete_attr_fn).attr_mpi1_fortran_delete_fn)) \
|
(*((keyval_obj->delete_attr_fn).attr_mpi1_fortran_delete_fn)) \
|
||||||
(&(((ompi_##type##_t *)object)->attr_##type##_f), \
|
(&(((ompi_##type##_t *)object)->attr_##type##_f), \
|
||||||
&f_key, &attr_val, keyval_obj->extra_state, &f_err); \
|
&f_key, &attr_val, (int*)keyval_obj->extra_state, &f_err); \
|
||||||
if (MPI_SUCCESS != OMPI_FINT_2_INT(f_err)) { \
|
if (MPI_SUCCESS != OMPI_FINT_2_INT(f_err)) { \
|
||||||
if (need_lock) { \
|
if (need_lock) { \
|
||||||
OPAL_THREAD_UNLOCK(&alock); \
|
OPAL_THREAD_UNLOCK(&alock); \
|
||||||
@ -264,7 +264,7 @@
|
|||||||
MPI_Aint attr_val = translate_to_fortran_mpi2(attribute); \
|
MPI_Aint attr_val = translate_to_fortran_mpi2(attribute); \
|
||||||
(*((keyval_obj->delete_attr_fn).attr_mpi2_fortran_delete_fn)) \
|
(*((keyval_obj->delete_attr_fn).attr_mpi2_fortran_delete_fn)) \
|
||||||
(&(((ompi_##type##_t *)object)->attr_##type##_f), \
|
(&(((ompi_##type##_t *)object)->attr_##type##_f), \
|
||||||
&f_key, &attr_val, keyval_obj->extra_state, &f_err); \
|
&f_key, (int*)&attr_val, (int*)keyval_obj->extra_state, &f_err); \
|
||||||
if (MPI_SUCCESS != OMPI_FINT_2_INT(f_err)) { \
|
if (MPI_SUCCESS != OMPI_FINT_2_INT(f_err)) { \
|
||||||
if (need_lock) { \
|
if (need_lock) { \
|
||||||
OPAL_THREAD_UNLOCK(&alock); \
|
OPAL_THREAD_UNLOCK(&alock); \
|
||||||
@ -301,7 +301,7 @@
|
|||||||
in = translate_to_fortran_mpi1(in_attr); \
|
in = translate_to_fortran_mpi1(in_attr); \
|
||||||
(*((keyval_obj->copy_attr_fn).attr_mpi1_fortran_copy_fn)) \
|
(*((keyval_obj->copy_attr_fn).attr_mpi1_fortran_copy_fn)) \
|
||||||
(&(((ompi_##type##_t *)old_object)->attr_##type##_f), \
|
(&(((ompi_##type##_t *)old_object)->attr_##type##_f), \
|
||||||
&f_key, keyval_obj->extra_state, \
|
&f_key, (int*)keyval_obj->extra_state, \
|
||||||
&in, &out, &f_flag, &f_err); \
|
&in, &out, &f_flag, &f_err); \
|
||||||
if (MPI_SUCCESS != OMPI_FINT_2_INT(f_err)) { \
|
if (MPI_SUCCESS != OMPI_FINT_2_INT(f_err)) { \
|
||||||
OPAL_THREAD_UNLOCK(&alock); \
|
OPAL_THREAD_UNLOCK(&alock); \
|
||||||
@ -1135,7 +1135,7 @@ static int get_value(opal_hash_table_t *keyhash, int key,
|
|||||||
ret = opal_hash_table_get_value_uint32(keyhash, key, &attr);
|
ret = opal_hash_table_get_value_uint32(keyhash, key, &attr);
|
||||||
OPAL_THREAD_UNLOCK(&alock);
|
OPAL_THREAD_UNLOCK(&alock);
|
||||||
if (OMPI_SUCCESS == ret) {
|
if (OMPI_SUCCESS == ret) {
|
||||||
*attribute = attr;
|
*attribute = (attribute_value_t*)attr;
|
||||||
*flag = 1;
|
*flag = 1;
|
||||||
}
|
}
|
||||||
return OMPI_SUCCESS;
|
return OMPI_SUCCESS;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -235,7 +235,7 @@ static inline int ompi_cb_fifo_init_same_base_addr(int size_of_fifo,
|
|||||||
|
|
||||||
/* allocate fifo array */
|
/* allocate fifo array */
|
||||||
len_to_allocate = sizeof(void *) * fifo->size;
|
len_to_allocate = sizeof(void *) * fifo->size;
|
||||||
fifo->queue=memory_allocator->mpool_alloc(memory_allocator, len_to_allocate,CACHE_LINE_SIZE, 0, NULL);
|
fifo->queue = (volatile void**)memory_allocator->mpool_alloc(memory_allocator, len_to_allocate,CACHE_LINE_SIZE, 0, NULL);
|
||||||
if ( NULL == fifo->queue) {
|
if ( NULL == fifo->queue) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
@ -247,7 +247,7 @@ static inline int ompi_cb_fifo_init_same_base_addr(int size_of_fifo,
|
|||||||
|
|
||||||
/* allocate head control structure */
|
/* allocate head control structure */
|
||||||
len_to_allocate = sizeof(ompi_cb_fifo_ctl_t);
|
len_to_allocate = sizeof(ompi_cb_fifo_ctl_t);
|
||||||
fifo->head=memory_allocator->mpool_alloc(memory_allocator, len_to_allocate,CACHE_LINE_SIZE, 0, NULL);
|
fifo->head = (ompi_cb_fifo_ctl_t*)memory_allocator->mpool_alloc(memory_allocator, len_to_allocate,CACHE_LINE_SIZE, 0, NULL);
|
||||||
if ( NULL == fifo->head) {
|
if ( NULL == fifo->head) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
@ -259,7 +259,7 @@ static inline int ompi_cb_fifo_init_same_base_addr(int size_of_fifo,
|
|||||||
|
|
||||||
/* allocate tail control structure */
|
/* allocate tail control structure */
|
||||||
len_to_allocate = sizeof(ompi_cb_fifo_ctl_t);
|
len_to_allocate = sizeof(ompi_cb_fifo_ctl_t);
|
||||||
fifo->tail=memory_allocator->mpool_alloc(memory_allocator, len_to_allocate,CACHE_LINE_SIZE, 0, NULL);
|
fifo->tail = (ompi_cb_fifo_ctl_t*)memory_allocator->mpool_alloc(memory_allocator, len_to_allocate,CACHE_LINE_SIZE, 0, NULL);
|
||||||
if ( NULL == fifo->tail) {
|
if ( NULL == fifo->tail) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
@ -303,22 +303,21 @@ static inline int ompi_cb_fifo_free_same_base_addr( ompi_cb_fifo_t *fifo,
|
|||||||
if( OMPI_CB_NULL != fifo->head ){
|
if( OMPI_CB_NULL != fifo->head ){
|
||||||
ptr=(char *)(fifo->queue);
|
ptr=(char *)(fifo->queue);
|
||||||
memory_allocator->mpool_free(memory_allocator, ptr, NULL);
|
memory_allocator->mpool_free(memory_allocator, ptr, NULL);
|
||||||
fifo->queue=OMPI_CB_NULL;
|
fifo->queue = (volatile void**)OMPI_CB_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* free head control structure */
|
/* free head control structure */
|
||||||
if( OMPI_CB_NULL != fifo->head) {
|
if( OMPI_CB_NULL != fifo->head) {
|
||||||
ptr=(char *)(fifo->head);
|
ptr=(char *)(fifo->head);
|
||||||
memory_allocator->mpool_free(memory_allocator, ptr, NULL);
|
memory_allocator->mpool_free(memory_allocator, ptr, NULL);
|
||||||
fifo->head=OMPI_CB_NULL;
|
fifo->head = (ompi_cb_fifo_ctl_t*)OMPI_CB_NULL;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* free tail control structure */
|
/* free tail control structure */
|
||||||
if( OMPI_CB_NULL != fifo->tail) {
|
if( OMPI_CB_NULL != fifo->tail) {
|
||||||
ptr=(char *)(fifo->tail);
|
ptr=(char *)(fifo->tail);
|
||||||
memory_allocator->mpool_free(memory_allocator, ptr, NULL);
|
memory_allocator->mpool_free(memory_allocator, ptr, NULL);
|
||||||
fifo->tail=OMPI_CB_NULL;
|
fifo->tail = (ompi_cb_fifo_ctl_t*)OMPI_CB_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* return */
|
/* return */
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -264,7 +264,7 @@ static inline int ompi_fifo_init_same_base_addr(int size_of_cb_fifo,
|
|||||||
|
|
||||||
/* allocate head ompi_cb_fifo_t structure */
|
/* allocate head ompi_cb_fifo_t structure */
|
||||||
len_to_allocate=sizeof(ompi_cb_fifo_wrapper_t);
|
len_to_allocate=sizeof(ompi_cb_fifo_wrapper_t);
|
||||||
fifo->head=memory_allocator->mpool_alloc(memory_allocator, len_to_allocate,CACHE_LINE_SIZE, 0, NULL);
|
fifo->head = (ompi_cb_fifo_wrapper_t*)memory_allocator->mpool_alloc(memory_allocator, len_to_allocate,CACHE_LINE_SIZE, 0, NULL);
|
||||||
if ( NULL == fifo->head) {
|
if ( NULL == fifo->head) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
@ -337,7 +337,7 @@ static inline int ompi_fifo_write_to_head_same_base_addr(void *data,
|
|||||||
if (next_ff->cb_overflow) {
|
if (next_ff->cb_overflow) {
|
||||||
/* allocate head ompi_cb_fifo_t structure */
|
/* allocate head ompi_cb_fifo_t structure */
|
||||||
len_to_allocate=sizeof(ompi_cb_fifo_wrapper_t);
|
len_to_allocate=sizeof(ompi_cb_fifo_wrapper_t);
|
||||||
next_ff=fifo_allocator->mpool_alloc
|
next_ff = (ompi_cb_fifo_wrapper_t*)fifo_allocator->mpool_alloc
|
||||||
(fifo_allocator, len_to_allocate,CACHE_LINE_SIZE, 0, NULL);
|
(fifo_allocator, len_to_allocate,CACHE_LINE_SIZE, 0, NULL);
|
||||||
if ( NULL == next_ff) {
|
if ( NULL == next_ff) {
|
||||||
opal_atomic_unlock(&(fifo->fifo_lock));
|
opal_atomic_unlock(&(fifo->fifo_lock));
|
||||||
|
@ -154,10 +154,10 @@ int ompi_free_list_grow(ompi_free_list_t* flist, size_t num_elements)
|
|||||||
flist->fl_alignment;
|
flist->fl_alignment;
|
||||||
|
|
||||||
if (NULL != flist->fl_mpool)
|
if (NULL != flist->fl_mpool)
|
||||||
alloc_ptr = flist->fl_mpool->mpool_alloc(flist->fl_mpool,
|
alloc_ptr = (ompi_free_list_memory_t*)flist->fl_mpool->mpool_alloc(flist->fl_mpool,
|
||||||
alloc_size, 0, 0, &user_out);
|
alloc_size, 0, 0, &user_out);
|
||||||
else
|
else
|
||||||
alloc_ptr = malloc(alloc_size);
|
alloc_ptr = (ompi_free_list_memory_t*)malloc(alloc_size);
|
||||||
|
|
||||||
if(NULL == alloc_ptr)
|
if(NULL == alloc_ptr)
|
||||||
return OMPI_ERR_TEMP_OUT_OF_RESOURCE;
|
return OMPI_ERR_TEMP_OUT_OF_RESOURCE;
|
||||||
|
@ -29,9 +29,8 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(ompi_free_list_t);
|
|
||||||
struct mca_mem_pool_t;
|
|
||||||
|
|
||||||
|
struct mca_mem_pool_t;
|
||||||
|
|
||||||
struct ompi_free_list_t
|
struct ompi_free_list_t
|
||||||
{
|
{
|
||||||
@ -50,6 +49,7 @@ struct ompi_free_list_t
|
|||||||
opal_list_t fl_allocations;
|
opal_list_t fl_allocations;
|
||||||
};
|
};
|
||||||
typedef struct ompi_free_list_t ompi_free_list_t;
|
typedef struct ompi_free_list_t ompi_free_list_t;
|
||||||
|
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(ompi_free_list_t);
|
||||||
|
|
||||||
struct ompi_free_list_item_t
|
struct ompi_free_list_item_t
|
||||||
{
|
{
|
||||||
@ -58,7 +58,7 @@ struct ompi_free_list_item_t
|
|||||||
};
|
};
|
||||||
typedef struct ompi_free_list_item_t ompi_free_list_item_t;
|
typedef struct ompi_free_list_item_t ompi_free_list_item_t;
|
||||||
|
|
||||||
OBJ_CLASS_DECLARATION(ompi_free_list_item_t);
|
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(ompi_free_list_item_t);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize a free list.
|
* Initialize a free list.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -71,62 +71,24 @@ void ompi_pointer_array_destruct(ompi_pointer_array_t *array)
|
|||||||
*/
|
*/
|
||||||
int ompi_pointer_array_add(ompi_pointer_array_t *table, void *ptr)
|
int ompi_pointer_array_add(ompi_pointer_array_t *table, void *ptr)
|
||||||
{
|
{
|
||||||
void **p;
|
|
||||||
int i;
|
int i;
|
||||||
int index;
|
int index;
|
||||||
|
|
||||||
if (0) {
|
|
||||||
opal_output(0,"ompi_pointer_array_add: IN: "
|
|
||||||
" table %p (size %ld, lowest free %ld, number free %ld)"
|
|
||||||
" ptr = %p\n",
|
|
||||||
table, table->size, table->lowest_free, table->number_free,
|
|
||||||
ptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
assert(table != NULL);
|
|
||||||
|
|
||||||
OPAL_THREAD_LOCK(&(table->lock));
|
OPAL_THREAD_LOCK(&(table->lock));
|
||||||
|
|
||||||
if (table->addr == NULL) {
|
if (table->number_free == 0) {
|
||||||
|
|
||||||
/*
|
|
||||||
* first time
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (0) {
|
|
||||||
opal_output(0,"ompi_pointer_array_add: INIT: table %p\n", table);
|
|
||||||
}
|
|
||||||
|
|
||||||
p = (void **) malloc(TABLE_INIT * sizeof(void *));
|
|
||||||
if (p == NULL) {
|
|
||||||
OPAL_THREAD_UNLOCK(&(table->lock));
|
|
||||||
return OMPI_ERROR;
|
|
||||||
}
|
|
||||||
table->lowest_free = 0;
|
|
||||||
table->number_free = TABLE_INIT;
|
|
||||||
table->size = TABLE_INIT;
|
|
||||||
table->addr = p;
|
|
||||||
for (i = 0; i < table->size; i++) {
|
|
||||||
table->addr[i] = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (table->number_free == 0) {
|
|
||||||
|
|
||||||
/* need to grow table */
|
/* need to grow table */
|
||||||
|
if (!grow_table(table,
|
||||||
if (!grow_table(table, table->size * TABLE_GROW,
|
(NULL == table->addr ? TABLE_INIT : table->size * TABLE_GROW),
|
||||||
OMPI_FORTRAN_HANDLE_MAX)) {
|
OMPI_FORTRAN_HANDLE_MAX)) {
|
||||||
OPAL_THREAD_UNLOCK(&(table->lock));
|
OPAL_THREAD_UNLOCK(&(table->lock));
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(table->addr != NULL);
|
assert( (table->addr != NULL) && (table->size > 0) );
|
||||||
assert(table->size > 0);
|
assert( (table->lowest_free >= 0) && (table->lowest_free < table->size) );
|
||||||
assert(table->lowest_free >= 0);
|
assert( (table->number_free > 0) && (table->number_free <= table->size) );
|
||||||
assert(table->lowest_free < table->size);
|
|
||||||
assert(table->number_free > 0);
|
|
||||||
assert(table->number_free <= table->size);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* add pointer to table, and return the index
|
* add pointer to table, and return the index
|
||||||
@ -148,14 +110,6 @@ int ompi_pointer_array_add(ompi_pointer_array_t *table, void *ptr)
|
|||||||
table->lowest_free = table->size;
|
table->lowest_free = table->size;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0) {
|
|
||||||
opal_output(0,"ompi_pointer_array_add: OUT: "
|
|
||||||
" table %p (size %ld, lowest free %ld, number free %ld)"
|
|
||||||
" addr[%d] = %p\n",
|
|
||||||
table, table->size, table->lowest_free, table->number_free,
|
|
||||||
index, ptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
OPAL_THREAD_UNLOCK(&(table->lock));
|
OPAL_THREAD_UNLOCK(&(table->lock));
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
@ -176,14 +130,6 @@ int ompi_pointer_array_set_item(ompi_pointer_array_t *table, int index,
|
|||||||
{
|
{
|
||||||
assert(table != NULL);
|
assert(table != NULL);
|
||||||
|
|
||||||
#if 0
|
|
||||||
opal_output(0,"ompi_pointer_array_set_item: IN: "
|
|
||||||
" table %p (size %ld, lowest free %ld, number free %ld)"
|
|
||||||
" addr[%d] = %p\n",
|
|
||||||
table, table->size, table->lowest_free, table->number_free,
|
|
||||||
index, table->addr[index]);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* expand table if required to set a specific index */
|
/* expand table if required to set a specific index */
|
||||||
|
|
||||||
OPAL_THREAD_LOCK(&(table->lock));
|
OPAL_THREAD_LOCK(&(table->lock));
|
||||||
@ -372,7 +318,7 @@ static bool grow_table(ompi_pointer_array_t *table, size_t soft, size_t hard)
|
|||||||
|
|
||||||
new_size_int = (int) new_size;
|
new_size_int = (int) new_size;
|
||||||
table->number_free += new_size_int - table->size;
|
table->number_free += new_size_int - table->size;
|
||||||
table->addr = p;
|
table->addr = (void**)p;
|
||||||
for (i = table->size; i < new_size_int; ++i) {
|
for (i = table->size; i < new_size_int; ++i) {
|
||||||
table->addr[i] = NULL;
|
table->addr[i] = NULL;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -69,8 +69,6 @@ typedef struct ompi_pointer_array_t ompi_pointer_array_t;
|
|||||||
*/
|
*/
|
||||||
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(ompi_pointer_array_t);
|
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(ompi_pointer_array_t);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a pointer to the array (Grow the array, if need be)
|
* Add a pointer to the array (Grow the array, if need be)
|
||||||
*
|
*
|
||||||
@ -107,6 +105,10 @@ static inline void *ompi_pointer_array_get_item(ompi_pointer_array_t *table,
|
|||||||
int index)
|
int index)
|
||||||
{
|
{
|
||||||
void *p;
|
void *p;
|
||||||
|
|
||||||
|
if( table->size <= index ) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
OPAL_THREAD_LOCK(&(table->lock));
|
OPAL_THREAD_LOCK(&(table->lock));
|
||||||
p = table->addr[index];
|
p = table->addr[index];
|
||||||
OPAL_THREAD_UNLOCK(&(table->lock));
|
OPAL_THREAD_UNLOCK(&(table->lock));
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -21,8 +21,6 @@
|
|||||||
|
|
||||||
#include "ompi_config.h"
|
#include "ompi_config.h"
|
||||||
#include "opal/class/opal_list.h"
|
#include "opal/class/opal_list.h"
|
||||||
#include "opal/threads/threads.h"
|
|
||||||
#include "opal/threads/condition.h"
|
|
||||||
#include "ompi/constants.h"
|
#include "ompi/constants.h"
|
||||||
#include "ompi/mca/mpool/mpool.h"
|
#include "ompi/mca/mpool/mpool.h"
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -1153,7 +1153,7 @@ int ompi_topo_create (ompi_communicator_t *old_comm,
|
|||||||
|
|
||||||
/* allocate the data for the common good */
|
/* allocate the data for the common good */
|
||||||
|
|
||||||
new_comm->c_topo_comm = malloc(sizeof(mca_topo_base_comm_t));
|
new_comm->c_topo_comm = (mca_topo_base_comm_t*)malloc(sizeof(mca_topo_base_comm_t));
|
||||||
if (NULL == new_comm->c_topo_comm) {
|
if (NULL == new_comm->c_topo_comm) {
|
||||||
OBJ_RELEASE(new_comm);
|
OBJ_RELEASE(new_comm);
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -117,7 +117,7 @@ int ompi_comm_nextcid ( ompi_communicator_t* newcomm,
|
|||||||
int nextcid;
|
int nextcid;
|
||||||
int done=0;
|
int done=0;
|
||||||
int response=0, glresponse=0;
|
int response=0, glresponse=0;
|
||||||
int flag;
|
bool flag;
|
||||||
int start=ompi_mpi_communicators.lowest_free;
|
int start=ompi_mpi_communicators.lowest_free;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -52,7 +52,9 @@
|
|||||||
|
|
||||||
#include "orte/runtime/runtime.h"
|
#include "orte/runtime/runtime.h"
|
||||||
|
|
||||||
|
#if !defined(__WINDOWS__)
|
||||||
extern char **environ;
|
extern char **environ;
|
||||||
|
#endif /* !defined(__WINDOWS__) */
|
||||||
|
|
||||||
int ompi_comm_connect_accept ( ompi_communicator_t *comm, int root,
|
int ompi_comm_connect_accept ( ompi_communicator_t *comm, int root,
|
||||||
orte_process_name_t *port, int send_first,
|
orte_process_name_t *port, int send_first,
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -144,7 +144,7 @@ char* ompi_comm_namelookup ( char *service_name )
|
|||||||
}
|
}
|
||||||
if ( 0 < cnt && NULL != values[0] ) { /* should be only one, if any */
|
if ( 0 < cnt && NULL != values[0] ) { /* should be only one, if any */
|
||||||
keyvals = values[0]->keyvals;
|
keyvals = values[0]->keyvals;
|
||||||
stmp = strdup(keyvals[0]->value->data);
|
stmp = strdup((const char*)keyvals[0]->value->data);
|
||||||
OBJ_RELEASE(values[0]);
|
OBJ_RELEASE(values[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,7 +33,8 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OMPI_DECLSPEC extern opal_class_t ompi_communicator_t_class;
|
|
||||||
|
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(ompi_communicator_t);
|
||||||
|
|
||||||
#define OMPI_COMM_INTER 0x00000001
|
#define OMPI_COMM_INTER 0x00000001
|
||||||
#define OMPI_COMM_CART 0x00000002
|
#define OMPI_COMM_CART 0x00000002
|
||||||
@ -229,7 +230,6 @@ struct ompi_communicator_t {
|
|||||||
static inline ompi_communicator_t *ompi_comm_lookup(uint32_t cid)
|
static inline ompi_communicator_t *ompi_comm_lookup(uint32_t cid)
|
||||||
{
|
{
|
||||||
/* array of pointers to communicators, indexed by context ID */
|
/* array of pointers to communicators, indexed by context ID */
|
||||||
OMPI_DECLSPEC extern ompi_pointer_array_t ompi_mpi_communicators;
|
|
||||||
return (ompi_communicator_t*)ompi_pointer_array_get_item(&ompi_mpi_communicators, cid);
|
return (ompi_communicator_t*)ompi_pointer_array_get_item(&ompi_mpi_communicators, cid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ int32_t ompi_convertor_pack( ompi_convertor_t* pConv,
|
|||||||
return pConv->fAdvance( pConv, iov, out_size, max_data, freeAfter );
|
return pConv->fAdvance( pConv, iov, out_size, max_data, freeAfter );
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int32_t ompi_convertor_unpack( ompi_convertor_t* pConv,
|
int32_t ompi_convertor_unpack( ompi_convertor_t* pConv,
|
||||||
struct iovec* iov, uint32_t* out_size,
|
struct iovec* iov, uint32_t* out_size,
|
||||||
size_t* max_data, int32_t* freeAfter )
|
size_t* max_data, int32_t* freeAfter )
|
||||||
{
|
{
|
||||||
|
@ -102,7 +102,7 @@ struct ompi_convertor_t {
|
|||||||
uint32_t csum_ui2; /**< partial checksum computed by pack/unpack operation */
|
uint32_t csum_ui2; /**< partial checksum computed by pack/unpack operation */
|
||||||
dt_stack_t static_stack[DT_STATIC_STACK_SIZE]; /**< local stack for small datatypes */
|
dt_stack_t static_stack[DT_STATIC_STACK_SIZE]; /**< local stack for small datatypes */
|
||||||
};
|
};
|
||||||
OBJ_CLASS_DECLARATION( ompi_convertor_t );
|
OMPI_DECLSPEC OBJ_CLASS_DECLARATION( ompi_convertor_t );
|
||||||
|
|
||||||
/* Base convertor for all external32 operations */
|
/* Base convertor for all external32 operations */
|
||||||
OMPI_DECLSPEC extern ompi_convertor_t* ompi_mpi_external32_convertor;
|
OMPI_DECLSPEC extern ompi_convertor_t* ompi_mpi_external32_convertor;
|
||||||
|
@ -41,10 +41,12 @@
|
|||||||
#include "opal/class/opal_hash_table.h"
|
#include "opal/class/opal_hash_table.h"
|
||||||
#include "ompi/class/ompi_pointer_array.h"
|
#include "ompi/class/ompi_pointer_array.h"
|
||||||
#include "mpi.h"
|
#include "mpi.h"
|
||||||
|
|
||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OMPI_DECLSPEC extern ompi_pointer_array_t *ompi_datatype_f_to_c_table;
|
|
||||||
|
extern ompi_pointer_array_t *ompi_datatype_f_to_c_table;
|
||||||
|
|
||||||
/* if there are more basic datatypes than the number of bytes in the int type
|
/* if there are more basic datatypes than the number of bytes in the int type
|
||||||
* the bdt_used field of the data description struct should be changed to long.
|
* the bdt_used field of the data description struct should be changed to long.
|
||||||
@ -121,7 +123,7 @@ typedef struct ompi_datatype_t {
|
|||||||
uint32_t btypes[DT_MAX_PREDEFINED];
|
uint32_t btypes[DT_MAX_PREDEFINED];
|
||||||
} ompi_datatype_t;
|
} ompi_datatype_t;
|
||||||
|
|
||||||
OBJ_CLASS_DECLARATION( ompi_datatype_t );
|
OMPI_DECLSPEC OBJ_CLASS_DECLARATION( ompi_datatype_t );
|
||||||
|
|
||||||
int ompi_ddt_register_params(void);
|
int ompi_ddt_register_params(void);
|
||||||
int32_t ompi_ddt_init( void );
|
int32_t ompi_ddt_init( void );
|
||||||
|
@ -221,11 +221,12 @@ typedef struct {
|
|||||||
long double i;
|
long double i;
|
||||||
} ompi_complex_long_double_t;
|
} ompi_complex_long_double_t;
|
||||||
|
|
||||||
extern const ompi_datatype_t* ompi_ddt_basicDatatypes[];
|
extern const ompi_datatype_t* ompi_ddt_basicDatatypes[DT_MAX_PREDEFINED];
|
||||||
|
|
||||||
#define BASIC_DDT_FROM_ELEM( ELEM ) (ompi_ddt_basicDatatypes[(ELEM).elem.common.type])
|
#define BASIC_DDT_FROM_ELEM( ELEM ) (ompi_ddt_basicDatatypes[(ELEM).elem.common.type])
|
||||||
|
|
||||||
extern int32_t ompi_ddt_default_convertors_init( void );
|
int32_t ompi_ddt_default_convertors_init( void );
|
||||||
extern int32_t ompi_ddt_default_convertors_fini( void );
|
int32_t ompi_ddt_default_convertors_fini( void );
|
||||||
|
|
||||||
#define SAVE_STACK( PSTACK, INDEX, TYPE, COUNT, DISP, END_LOOP) \
|
#define SAVE_STACK( PSTACK, INDEX, TYPE, COUNT, DISP, END_LOOP) \
|
||||||
do { \
|
do { \
|
||||||
|
@ -191,7 +191,7 @@ ompi_pack_homogeneous_contig_with_gaps_function( ompi_convertor_t* pConv,
|
|||||||
if( iov[iov_count].iov_base == NULL ) {
|
if( iov[iov_count].iov_base == NULL ) {
|
||||||
size_t length = iov[iov_count].iov_len;
|
size_t length = iov[iov_count].iov_len;
|
||||||
if( 0 == length ) length = max_allowed;
|
if( 0 == length ) length = max_allowed;
|
||||||
iov[iov_count].iov_base = pConv->memAlloc_fn( &length, pConv->memAlloc_userdata );
|
iov[iov_count].iov_base = (IOVBASE_TYPE*)pConv->memAlloc_fn( &length, pConv->memAlloc_userdata );
|
||||||
iov[iov_count].iov_len = length;
|
iov[iov_count].iov_len = length;
|
||||||
(*freeAfter) |= (1 << 0);
|
(*freeAfter) |= (1 << 0);
|
||||||
if( max_allowed < (size_t)iov[iov_count].iov_len )
|
if( max_allowed < (size_t)iov[iov_count].iov_len )
|
||||||
@ -301,7 +301,7 @@ ompi_generic_simple_pack_function( ompi_convertor_t* pConvertor,
|
|||||||
if( ((*max_data) - total_packed) < length )
|
if( ((*max_data) - total_packed) < length )
|
||||||
length = (*max_data) - total_packed;
|
length = (*max_data) - total_packed;
|
||||||
assert( 0 < length );
|
assert( 0 < length );
|
||||||
iov[iov_count].iov_base = pConvertor->memAlloc_fn( &length, pConvertor->memAlloc_userdata );
|
iov[iov_count].iov_base = (IOVBASE_TYPE*)pConvertor->memAlloc_fn( &length, pConvertor->memAlloc_userdata );
|
||||||
iov[iov_count].iov_len = length;
|
iov[iov_count].iov_len = length;
|
||||||
*freeAfter = (*freeAfter) | (1 << iov_count);
|
*freeAfter = (*freeAfter) | (1 << iov_count);
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
*
|
*
|
||||||
* $HEADER$
|
* $HEADER$
|
||||||
*/
|
*/
|
||||||
|
#include "ompi_config.h"
|
||||||
#include "dt_arch.h"
|
#include "dt_arch.h"
|
||||||
|
|
||||||
int32_t ompi_arch_compute_local_id( uint32_t *me )
|
int32_t ompi_arch_compute_local_id( uint32_t *me )
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
#ifndef DATATYPE_ARCH_H_HAS_BEEN_INCLUDED
|
#ifndef DATATYPE_ARCH_H_HAS_BEEN_INCLUDED
|
||||||
#define DATATYPE_ARCH_H_HAS_BEEN_INCLUDED
|
#define DATATYPE_ARCH_H_HAS_BEEN_INCLUDED
|
||||||
|
|
||||||
#include "ompi_config.h"
|
|
||||||
#include <float.h>
|
#include <float.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include "ompi/constants.h"
|
#include "ompi/constants.h"
|
||||||
|
@ -214,7 +214,7 @@ int32_t ompi_ddt_set_args( ompi_datatype_t* pData,
|
|||||||
int32_t ompi_ddt_print_args( const ompi_datatype_t* pData )
|
int32_t ompi_ddt_print_args( const ompi_datatype_t* pData )
|
||||||
{
|
{
|
||||||
int32_t i;
|
int32_t i;
|
||||||
ompi_ddt_args_t* pArgs = pData->args;
|
ompi_ddt_args_t* pArgs = (ompi_ddt_args_t*)pData->args;
|
||||||
|
|
||||||
if( pData->flags & DT_FLAG_PREDEFINED ) {
|
if( pData->flags & DT_FLAG_PREDEFINED ) {
|
||||||
/* nothing to do for predefined data-types */
|
/* nothing to do for predefined data-types */
|
||||||
@ -286,7 +286,7 @@ int32_t ompi_ddt_get_args( const ompi_datatype_t* pData, int32_t which,
|
|||||||
int32_t* ca, MPI_Aint* a,
|
int32_t* ca, MPI_Aint* a,
|
||||||
int32_t* cd, MPI_Datatype* d, int32_t* type)
|
int32_t* cd, MPI_Datatype* d, int32_t* type)
|
||||||
{
|
{
|
||||||
ompi_ddt_args_t* pArgs = pData->args;
|
ompi_ddt_args_t* pArgs = (ompi_ddt_args_t*)pData->args;
|
||||||
|
|
||||||
if( pData->flags & DT_FLAG_PREDEFINED ) {
|
if( pData->flags & DT_FLAG_PREDEFINED ) {
|
||||||
switch(which){
|
switch(which){
|
||||||
@ -330,7 +330,7 @@ int32_t ompi_ddt_get_args( const ompi_datatype_t* pData, int32_t which,
|
|||||||
int32_t ompi_ddt_copy_args( const ompi_datatype_t* source_data,
|
int32_t ompi_ddt_copy_args( const ompi_datatype_t* source_data,
|
||||||
ompi_datatype_t* dest_data )
|
ompi_datatype_t* dest_data )
|
||||||
{
|
{
|
||||||
ompi_ddt_args_t* pArgs = source_data->args;
|
ompi_ddt_args_t* pArgs = (ompi_ddt_args_t*)source_data->args;
|
||||||
|
|
||||||
/* If required then increase the reference count of the arguments. This avoid us
|
/* If required then increase the reference count of the arguments. This avoid us
|
||||||
* to make one more copy for a read only piece of memory.
|
* to make one more copy for a read only piece of memory.
|
||||||
@ -349,7 +349,7 @@ int32_t ompi_ddt_copy_args( const ompi_datatype_t* source_data,
|
|||||||
int32_t ompi_ddt_release_args( ompi_datatype_t* pData )
|
int32_t ompi_ddt_release_args( ompi_datatype_t* pData )
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
ompi_ddt_args_t* pArgs = pData->args;
|
ompi_ddt_args_t* pArgs = (ompi_ddt_args_t*)pData->args;
|
||||||
|
|
||||||
assert( 0 < pArgs->ref_count );
|
assert( 0 < pArgs->ref_count );
|
||||||
pArgs->ref_count--;
|
pArgs->ref_count--;
|
||||||
@ -428,7 +428,7 @@ static inline int __ompi_ddt_pack_description( ompi_datatype_t* datatype,
|
|||||||
int ompi_ddt_get_pack_description( ompi_datatype_t* datatype,
|
int ompi_ddt_get_pack_description( ompi_datatype_t* datatype,
|
||||||
const void** packed_buffer )
|
const void** packed_buffer )
|
||||||
{
|
{
|
||||||
ompi_ddt_args_t* args = datatype->args;
|
ompi_ddt_args_t* args = (ompi_ddt_args_t*)datatype->args;
|
||||||
int next_index = DT_MAX_PREDEFINED;
|
int next_index = DT_MAX_PREDEFINED;
|
||||||
void* recursive_buffer;
|
void* recursive_buffer;
|
||||||
|
|
||||||
|
@ -185,7 +185,7 @@ int32_t ompi_ddt_copy_content_same_ddt( const ompi_datatype_t* datatype, int32_t
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
pStack = alloca( sizeof(dt_stack_t) * (datatype->btypes[DT_LOOP] + 1) );
|
pStack = (dt_stack_t*)alloca( sizeof(dt_stack_t) * (datatype->btypes[DT_LOOP] + 1) );
|
||||||
pStack->count = count;
|
pStack->count = count;
|
||||||
pStack->index = -1;
|
pStack->index = -1;
|
||||||
pStack->disp = 0;
|
pStack->disp = 0;
|
||||||
|
@ -29,7 +29,7 @@ int32_t ompi_ddt_duplicate( const ompi_datatype_t* oldType, ompi_datatype_t** ne
|
|||||||
{
|
{
|
||||||
int32_t desc_length = oldType->desc.used + 1; /* +1 because of the fake DT_END_LOOP entry */
|
int32_t desc_length = oldType->desc.used + 1; /* +1 because of the fake DT_END_LOOP entry */
|
||||||
ompi_datatype_t* pdt = ompi_ddt_create( desc_length );
|
ompi_datatype_t* pdt = ompi_ddt_create( desc_length );
|
||||||
void* temp = pdt->desc.desc; /* temporary copy of the desc pointer */
|
dt_elem_desc_t* temp = pdt->desc.desc; /* temporary copy of the desc pointer */
|
||||||
int32_t old_index = pdt->d_f_to_c_index;
|
int32_t old_index = pdt->d_f_to_c_index;
|
||||||
|
|
||||||
memcpy( pdt, oldType, sizeof(ompi_datatype_t) );
|
memcpy( pdt, oldType, sizeof(ompi_datatype_t) );
|
||||||
@ -48,7 +48,7 @@ int32_t ompi_ddt_duplicate( const ompi_datatype_t* oldType, ompi_datatype_t** ne
|
|||||||
/* TODO: if the data was commited update the opt_desc field */
|
/* TODO: if the data was commited update the opt_desc field */
|
||||||
if( 0 != oldType->opt_desc.used ) {
|
if( 0 != oldType->opt_desc.used ) {
|
||||||
desc_length = pdt->opt_desc.used + 1;
|
desc_length = pdt->opt_desc.used + 1;
|
||||||
pdt->opt_desc.desc = malloc( desc_length * sizeof(dt_elem_desc_t) );
|
pdt->opt_desc.desc = (dt_elem_desc_t*)malloc( desc_length * sizeof(dt_elem_desc_t) );
|
||||||
/*
|
/*
|
||||||
* Yes, the pdt->opt_desc.length is just the opt_desc.used of the old Type.
|
* Yes, the pdt->opt_desc.length is just the opt_desc.used of the old Type.
|
||||||
*/
|
*/
|
||||||
|
@ -40,7 +40,7 @@ int32_t ompi_ddt_get_element_count( const ompi_datatype_t* datatype, int32_t iSi
|
|||||||
*/
|
*/
|
||||||
assert( (uint32_t)iSize <= datatype->size );
|
assert( (uint32_t)iSize <= datatype->size );
|
||||||
DUMP( "dt_count_elements( %p, %d )\n", (void*)datatype, iSize );
|
DUMP( "dt_count_elements( %p, %d )\n", (void*)datatype, iSize );
|
||||||
pStack = alloca( sizeof(dt_stack_t) * (datatype->btypes[DT_LOOP] + 2) );
|
pStack = (dt_stack_t*)alloca( sizeof(dt_stack_t) * (datatype->btypes[DT_LOOP] + 2) );
|
||||||
pStack->count = 1;
|
pStack->count = 1;
|
||||||
pStack->index = -1;
|
pStack->index = -1;
|
||||||
pStack->disp = 0;
|
pStack->disp = 0;
|
||||||
|
@ -37,7 +37,7 @@ ompi_ddt_match_size( int size, uint16_t datakind, uint16_t datalang )
|
|||||||
|
|
||||||
for( i = 0; i < ompi_ddt_number_of_predefined_data; i++ ) {
|
for( i = 0; i < ompi_ddt_number_of_predefined_data; i++ ) {
|
||||||
|
|
||||||
datatype = ompi_pointer_array_get_item(ompi_datatype_f_to_c_table, i);
|
datatype = (ompi_datatype_t*)ompi_pointer_array_get_item(ompi_datatype_f_to_c_table, i);
|
||||||
|
|
||||||
if( (datatype->flags & DT_FLAG_DATA_LANGUAGE) != datalang )
|
if( (datatype->flags & DT_FLAG_DATA_LANGUAGE) != datalang )
|
||||||
continue;
|
continue;
|
||||||
|
@ -592,7 +592,7 @@ int32_t ompi_ddt_init( void )
|
|||||||
MOOG(cxx_ldblcplex);
|
MOOG(cxx_ldblcplex);
|
||||||
|
|
||||||
for( i = 0; i < ompi_mpi_cxx_ldblcplex.d_f_to_c_index; i++ ) {
|
for( i = 0; i < ompi_mpi_cxx_ldblcplex.d_f_to_c_index; i++ ) {
|
||||||
ompi_datatype_t* datatype = ompi_pointer_array_get_item( ompi_datatype_f_to_c_table, i );
|
ompi_datatype_t* datatype = (ompi_datatype_t*)ompi_pointer_array_get_item( ompi_datatype_f_to_c_table, i );
|
||||||
|
|
||||||
if( (datatype->ub - datatype->lb) == (long)datatype->size ) {
|
if( (datatype->ub - datatype->lb) == (long)datatype->size ) {
|
||||||
datatype->flags |= DT_FLAG_NO_GAPS;
|
datatype->flags |= DT_FLAG_NO_GAPS;
|
||||||
|
@ -79,7 +79,7 @@ ompi_ddt_optimize_short( ompi_datatype_t* pData,
|
|||||||
int32_t optimized = 0, continuity;
|
int32_t optimized = 0, continuity;
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
|
|
||||||
pStack = alloca( sizeof(dt_stack_t) * (pData->btypes[DT_LOOP]+2) );
|
pStack = (dt_stack_t*)alloca( sizeof(dt_stack_t) * (pData->btypes[DT_LOOP]+2) );
|
||||||
SAVE_STACK( pStack, -1, 0, count, 0, pData->desc.used );
|
SAVE_STACK( pStack, -1, 0, count, 0, pData->desc.used );
|
||||||
|
|
||||||
pTypeDesc->length = 2 * pData->desc.used + 1 /* for the fake DT_END_LOOP at the end */;
|
pTypeDesc->length = 2 * pData->desc.used + 1 /* for the fake DT_END_LOOP at the end */;
|
||||||
|
@ -72,7 +72,7 @@ int32_t ompi_ddt_sndrcv( void *sbuf, int32_t scount, const ompi_datatype_t* sdty
|
|||||||
|
|
||||||
iov_count = 1;
|
iov_count = 1;
|
||||||
iov.iov_len = rcount;
|
iov.iov_len = rcount;
|
||||||
iov.iov_base = rbuf;
|
iov.iov_base = (IOVBASE_TYPE*)rbuf;
|
||||||
max_data = ( (size_t)iov.iov_len > (scount * sdtype->size) ? (scount * sdtype->size) : iov.iov_len );
|
max_data = ( (size_t)iov.iov_len > (scount * sdtype->size) ? (scount * sdtype->size) : iov.iov_len );
|
||||||
|
|
||||||
err = ompi_convertor_pack( send_convertor, &iov, &iov_count, &max_data, &freeAfter );
|
err = ompi_convertor_pack( send_convertor, &iov, &iov_count, &max_data, &freeAfter );
|
||||||
@ -87,7 +87,7 @@ int32_t ompi_ddt_sndrcv( void *sbuf, int32_t scount, const ompi_datatype_t* sdty
|
|||||||
|
|
||||||
iov_count = 1;
|
iov_count = 1;
|
||||||
iov.iov_len = scount;
|
iov.iov_len = scount;
|
||||||
iov.iov_base = sbuf;
|
iov.iov_base = (IOVBASE_TYPE*)sbuf;
|
||||||
max_data = ( (size_t)iov.iov_len < (rcount * rdtype->size) ? iov.iov_len : (rcount * rdtype->size) );
|
max_data = ( (size_t)iov.iov_len < (rcount * rdtype->size) ? iov.iov_len : (rcount * rdtype->size) );
|
||||||
|
|
||||||
err = ompi_convertor_unpack( recv_convertor, &iov, &iov_count, &max_data, &freeAfter );
|
err = ompi_convertor_unpack( recv_convertor, &iov, &iov_count, &max_data, &freeAfter );
|
||||||
@ -98,7 +98,7 @@ int32_t ompi_ddt_sndrcv( void *sbuf, int32_t scount, const ompi_datatype_t* sdty
|
|||||||
}
|
}
|
||||||
|
|
||||||
iov.iov_len = length = 64 * 1024;
|
iov.iov_len = length = 64 * 1024;
|
||||||
iov.iov_base = (void*)malloc( length * sizeof(char) );
|
iov.iov_base = (IOVBASE_TYPE*)malloc( length * sizeof(char) );
|
||||||
|
|
||||||
send_convertor = OBJ_NEW(ompi_convertor_t);
|
send_convertor = OBJ_NEW(ompi_convertor_t);
|
||||||
recv_convertor = OBJ_NEW(ompi_convertor_t);
|
recv_convertor = OBJ_NEW(ompi_convertor_t);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -107,7 +107,7 @@ OMPI_DECLSPEC extern ompi_file_t ompi_mpi_file_null;
|
|||||||
/**
|
/**
|
||||||
* Fortran to C conversion table
|
* Fortran to C conversion table
|
||||||
*/
|
*/
|
||||||
OMPI_DECLSPEC extern ompi_pointer_array_t ompi_file_f_to_c_table;
|
extern ompi_pointer_array_t ompi_file_f_to_c_table;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -69,10 +69,13 @@ struct ompi_info_entry_t {
|
|||||||
*/
|
*/
|
||||||
typedef struct ompi_info_entry_t ompi_info_entry_t;
|
typedef struct ompi_info_entry_t ompi_info_entry_t;
|
||||||
|
|
||||||
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
/**
|
/**
|
||||||
* Table for Fortran <-> C translation table
|
* Table for Fortran <-> C translation table
|
||||||
*/
|
*/
|
||||||
OMPI_DECLSPEC extern ompi_pointer_array_t ompi_info_f_to_c_table;
|
extern ompi_pointer_array_t ompi_info_f_to_c_table;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Global instance for MPI_INFO_NULL
|
* Global instance for MPI_INFO_NULL
|
||||||
@ -91,10 +94,6 @@ OMPI_DECLSPEC OBJ_CLASS_DECLARATION(ompi_info_t);
|
|||||||
*/
|
*/
|
||||||
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(ompi_info_entry_t);
|
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(ompi_info_entry_t);
|
||||||
|
|
||||||
|
|
||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
/**
|
/**
|
||||||
* This function is invoked during ompi_mpi_init() and sets up
|
* This function is invoked during ompi_mpi_init() and sets up
|
||||||
* MPI_Info handling.
|
* MPI_Info handling.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -159,6 +159,7 @@ typedef struct mca_allocator_base_component_1_0_0_t mca_allocator_base_component
|
|||||||
* The output integer used for the mca base
|
* The output integer used for the mca base
|
||||||
*/
|
*/
|
||||||
OMPI_DECLSPEC extern int mca_allocator_base_output;
|
OMPI_DECLSPEC extern int mca_allocator_base_output;
|
||||||
|
|
||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -49,7 +49,7 @@ typedef struct mca_allocator_base_selected_module_t mca_allocator_base_selected_
|
|||||||
/**
|
/**
|
||||||
* Declaces mca_mpool_base_selected_module_t as a class.
|
* Declaces mca_mpool_base_selected_module_t as a class.
|
||||||
*/
|
*/
|
||||||
OBJ_CLASS_DECLARATION(mca_mpool_base_selected_module_t);
|
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_allocator_base_selected_module_t);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -68,6 +68,7 @@ OMPI_DECLSPEC mca_allocator_base_component_t* mca_allocator_component_lookup(con
|
|||||||
* The list of all the selected components.
|
* The list of all the selected components.
|
||||||
*/
|
*/
|
||||||
OMPI_DECLSPEC extern opal_list_t mca_allocator_base_components;
|
OMPI_DECLSPEC extern opal_list_t mca_allocator_base_components;
|
||||||
|
|
||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -40,9 +40,8 @@ struct mca_bml_base_selected_module_t {
|
|||||||
mca_bml_base_module_t *bml_module;
|
mca_bml_base_module_t *bml_module;
|
||||||
};
|
};
|
||||||
typedef struct mca_bml_base_selected_module_t mca_bml_base_selected_module_t;
|
typedef struct mca_bml_base_selected_module_t mca_bml_base_selected_module_t;
|
||||||
OBJ_CLASS_DECLARATION(mca_bml_base_selected_module_t);
|
|
||||||
|
|
||||||
|
|
||||||
|
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_bml_base_selected_module_t);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Global functions for MCA: overall BTL open and close
|
* Global functions for MCA: overall BTL open and close
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -53,7 +53,7 @@ int mca_bml_base_btl_array_reserve(mca_bml_base_btl_array_t* array, size_t size)
|
|||||||
if(old_len >= new_len)
|
if(old_len >= new_len)
|
||||||
return OMPI_SUCCESS;
|
return OMPI_SUCCESS;
|
||||||
|
|
||||||
array->bml_btls = realloc(array->bml_btls, new_len);
|
array->bml_btls = (mca_bml_base_btl_t*)realloc(array->bml_btls, new_len);
|
||||||
if(NULL == array->bml_btls)
|
if(NULL == array->bml_btls)
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
memset((unsigned char*)array->bml_btls + old_len, 0, new_len-old_len);
|
memset((unsigned char*)array->bml_btls + old_len, 0, new_len-old_len);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -16,6 +16,7 @@
|
|||||||
* $HEADER$
|
* $HEADER$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "ompi_config.h"
|
||||||
#include "ompi/mca/btl/base/base.h"
|
#include "ompi/mca/btl/base/base.h"
|
||||||
#include "ompi/mca/bml/base/base.h"
|
#include "ompi/mca/bml/base/base.h"
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -16,13 +16,14 @@
|
|||||||
* $HEADER$
|
* $HEADER$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "ompi_config.h"
|
||||||
#include "ompi/mca/bml/base/base.h"
|
#include "ompi/mca/bml/base/base.h"
|
||||||
#include "opal/mca/base/base.h"
|
#include "opal/mca/base/base.h"
|
||||||
|
|
||||||
#include "opal/mca/mca.h"
|
#include "opal/mca/mca.h"
|
||||||
int mca_bml_base_output = -1;
|
int mca_bml_base_output = -1;
|
||||||
|
|
||||||
OMPI_DECLSPEC mca_bml_base_module_t mca_bml = {
|
mca_bml_base_module_t mca_bml = {
|
||||||
NULL, /* bml_component */
|
NULL, /* bml_component */
|
||||||
0, /* bml_eager_limit */
|
0, /* bml_eager_limit */
|
||||||
0, /* bml_min_send_size */
|
0, /* bml_min_send_size */
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -100,7 +100,7 @@ int mca_bml_r2_progress( void ) {
|
|||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Progress each of the PTL modules
|
* Progress each of the BTL modules
|
||||||
*/
|
*/
|
||||||
for(i=0; i<mca_bml_r2.num_btl_progress; i++) {
|
for(i=0; i<mca_bml_r2.num_btl_progress; i++) {
|
||||||
int rc = mca_bml_r2.btl_progress[i]();
|
int rc = mca_bml_r2.btl_progress[i]();
|
||||||
@ -109,7 +109,6 @@ int mca_bml_r2_progress( void ) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return count;
|
return count;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -587,7 +586,7 @@ int mca_bml_r2_del_btl(mca_btl_base_module_t* btl)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* remove from bml list */
|
/* remove from bml list */
|
||||||
modules = malloc(sizeof(mca_btl_base_module_t*) * mca_bml_r2.num_btl_modules-1);
|
modules = (mca_btl_base_module_t**)malloc(sizeof(mca_btl_base_module_t*) * mca_bml_r2.num_btl_modules-1);
|
||||||
for(i=0,m=0; i<mca_bml_r2.num_btl_modules; i++) {
|
for(i=0,m=0; i<mca_bml_r2.num_btl_modules; i++) {
|
||||||
if(mca_bml_r2.btl_modules[i] != btl) {
|
if(mca_bml_r2.btl_modules[i] != btl) {
|
||||||
modules[m++] = mca_bml_r2.btl_modules[i];
|
modules[m++] = mca_bml_r2.btl_modules[i];
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -32,7 +32,9 @@
|
|||||||
#include "ompi/class/ompi_free_list.h"
|
#include "ompi/class/ompi_free_list.h"
|
||||||
#include "ompi/mca/bml/bml.h"
|
#include "ompi/mca/bml/bml.h"
|
||||||
|
|
||||||
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef mca_bml_base_module_recv_cb_fn_t mca_bml_r2_recv_reg_t;
|
typedef mca_bml_base_module_recv_cb_fn_t mca_bml_r2_recv_reg_t;
|
||||||
|
|
||||||
@ -58,31 +60,25 @@ struct mca_bml_r2_module_t {
|
|||||||
|
|
||||||
typedef struct mca_bml_r2_module_t mca_bml_r2_module_t;
|
typedef struct mca_bml_r2_module_t mca_bml_r2_module_t;
|
||||||
|
|
||||||
|
OMPI_DECLSPEC extern mca_bml_base_component_1_0_0_t mca_bml_r2_component;
|
||||||
extern mca_bml_r2_module_t mca_bml_r2;
|
extern mca_bml_r2_module_t mca_bml_r2;
|
||||||
|
|
||||||
extern int mca_bml_r2_component_open(void);
|
int mca_bml_r2_component_open(void);
|
||||||
extern int mca_bml_r2_component_close(void);
|
int mca_bml_r2_component_close(void);
|
||||||
|
|
||||||
extern mca_bml_base_module_t* mca_bml_r2_component_init(
|
mca_bml_base_module_t* mca_bml_r2_component_init( int* priority,
|
||||||
int* priority,
|
|
||||||
bool enable_progress_threads,
|
bool enable_progress_threads,
|
||||||
bool enable_mpi_threads
|
bool enable_mpi_threads );
|
||||||
);
|
|
||||||
|
|
||||||
extern int mca_bml_r2_progress(void);
|
int mca_bml_r2_progress(void);
|
||||||
|
|
||||||
|
int mca_bml_r2_add_procs( size_t nprocs,
|
||||||
int mca_bml_r2_add_procs(
|
|
||||||
size_t nprocs,
|
|
||||||
struct ompi_proc_t** procs,
|
struct ompi_proc_t** procs,
|
||||||
struct mca_bml_base_endpoint_t** bml_endpoints,
|
struct mca_bml_base_endpoint_t** bml_endpoints,
|
||||||
struct ompi_bitmap_t* reachable
|
struct ompi_bitmap_t* reachable );
|
||||||
);
|
|
||||||
|
|
||||||
int mca_bml_r2_del_procs(
|
int mca_bml_r2_del_procs( size_t nprocs,
|
||||||
size_t nprocs,
|
struct ompi_proc_t** procs );
|
||||||
struct ompi_proc_t** procs
|
|
||||||
);
|
|
||||||
|
|
||||||
int mca_bml_r2_add_btl( mca_btl_base_module_t* btl );
|
int mca_bml_r2_add_btl( mca_btl_base_module_t* btl );
|
||||||
|
|
||||||
@ -90,11 +86,9 @@ int mca_bml_r2_del_btl( mca_btl_base_module_t* btl );
|
|||||||
|
|
||||||
int mca_bml_r2_del_proc_btl( struct ompi_proc_t* proc, mca_btl_base_module_t* btl );
|
int mca_bml_r2_del_proc_btl( struct ompi_proc_t* proc, mca_btl_base_module_t* btl );
|
||||||
|
|
||||||
int mca_bml_r2_register(
|
int mca_bml_r2_register( mca_btl_base_tag_t tag,
|
||||||
mca_btl_base_tag_t tag,
|
|
||||||
mca_bml_base_module_recv_cb_fn_t cbfunc,
|
mca_bml_base_module_recv_cb_fn_t cbfunc,
|
||||||
void* data
|
void* data );
|
||||||
);
|
|
||||||
|
|
||||||
int mca_bml_r2_register_error( mca_btl_base_module_error_cb_fn_t cbfunc );
|
int mca_bml_r2_register_error( mca_btl_base_module_error_cb_fn_t cbfunc );
|
||||||
|
|
||||||
@ -102,4 +96,8 @@ int mca_bml_r2_finalize( void );
|
|||||||
|
|
||||||
int mca_bml_r2_component_fini(void);
|
int mca_bml_r2_component_fini(void);
|
||||||
|
|
||||||
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* OMPI_MCA_BML_R2_H */
|
#endif /* OMPI_MCA_BML_R2_H */
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -64,7 +64,7 @@ int mca_bml_r2_component_open(void)
|
|||||||
false,
|
false,
|
||||||
1,
|
1,
|
||||||
&tmp);
|
&tmp);
|
||||||
mca_bml_r2.show_unreach_errors = tmp;
|
mca_bml_r2.show_unreach_errors = (tmp != 0 ? true : false);
|
||||||
|
|
||||||
|
|
||||||
return OMPI_SUCCESS;
|
return OMPI_SUCCESS;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -48,7 +48,7 @@ struct mca_btl_base_recv_reg_t {
|
|||||||
typedef struct mca_btl_base_recv_reg_t mca_btl_base_recv_reg_t;
|
typedef struct mca_btl_base_recv_reg_t mca_btl_base_recv_reg_t;
|
||||||
|
|
||||||
|
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_base_selected_module_t);
|
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_btl_base_selected_module_t);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Global functions for MCA: overall BTL open and close
|
* Global functions for MCA: overall BTL open and close
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -114,6 +114,10 @@
|
|||||||
#include "ompi/types.h"
|
#include "ompi/types.h"
|
||||||
#include "ompi/mca/mpool/mpool.h"
|
#include "ompi/mca/mpool/mpool.h"
|
||||||
|
|
||||||
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* BTL types
|
* BTL types
|
||||||
*/
|
*/
|
||||||
@ -202,7 +206,7 @@ struct mca_btl_base_descriptor_t {
|
|||||||
};
|
};
|
||||||
typedef struct mca_btl_base_descriptor_t mca_btl_base_descriptor_t;
|
typedef struct mca_btl_base_descriptor_t mca_btl_base_descriptor_t;
|
||||||
|
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_base_descriptor_t);
|
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_btl_base_descriptor_t);
|
||||||
|
|
||||||
|
|
||||||
#define MCA_BTL_DES_FLAGS_DEREGISTER 0x0001
|
#define MCA_BTL_DES_FLAGS_DEREGISTER 0x0001
|
||||||
@ -595,4 +599,8 @@ typedef struct mca_btl_base_module_t mca_btl_base_module_t;
|
|||||||
/* btl v1.0 */ \
|
/* btl v1.0 */ \
|
||||||
"btl", 1, 0, 0
|
"btl", 1, 0, 0
|
||||||
|
|
||||||
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* OMPI_MCA_BTL_H */
|
#endif /* OMPI_MCA_BTL_H */
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -27,8 +27,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_btl_gm_frag_t);
|
|
||||||
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
MCA_BTL_GM_SEND,
|
MCA_BTL_GM_SEND,
|
||||||
@ -53,8 +51,8 @@ struct mca_btl_gm_frag_t {
|
|||||||
ompi_free_list_t* my_list;
|
ompi_free_list_t* my_list;
|
||||||
};
|
};
|
||||||
typedef struct mca_btl_gm_frag_t mca_btl_gm_frag_t;
|
typedef struct mca_btl_gm_frag_t mca_btl_gm_frag_t;
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_gm_frag_t);
|
|
||||||
|
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_gm_frag_t);
|
||||||
|
|
||||||
typedef struct mca_btl_gm_frag_t mca_btl_gm_frag_eager_t;
|
typedef struct mca_btl_gm_frag_t mca_btl_gm_frag_eager_t;
|
||||||
|
|
||||||
@ -68,7 +66,6 @@ typedef struct mca_btl_gm_frag_t mca_btl_gm_frag_user_t;
|
|||||||
|
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_gm_frag_user_t);
|
OBJ_CLASS_DECLARATION(mca_btl_gm_frag_user_t);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Macros to allocate/return descriptors from module specific
|
* Macros to allocate/return descriptors from module specific
|
||||||
* free list(s).
|
* free list(s).
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -36,8 +36,8 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_mvapi_endpoint_t);
|
|
||||||
|
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_mvapi_endpoint_t);
|
||||||
|
|
||||||
struct mca_btl_mvapi_frag_t;
|
struct mca_btl_mvapi_frag_t;
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -32,7 +32,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_btl_mvapi_frag_t);
|
|
||||||
|
|
||||||
struct mca_btl_mvapi_header_t {
|
struct mca_btl_mvapi_header_t {
|
||||||
mca_btl_base_tag_t tag;
|
mca_btl_base_tag_t tag;
|
||||||
@ -100,8 +99,8 @@ struct mca_btl_mvapi_frag_t {
|
|||||||
ompi_free_list_t* my_list;
|
ompi_free_list_t* my_list;
|
||||||
};
|
};
|
||||||
typedef struct mca_btl_mvapi_frag_t mca_btl_mvapi_frag_t;
|
typedef struct mca_btl_mvapi_frag_t mca_btl_mvapi_frag_t;
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_mvapi_frag_t);
|
|
||||||
|
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_mvapi_frag_t);
|
||||||
|
|
||||||
typedef struct mca_btl_mvapi_frag_t mca_btl_mvapi_send_frag_eager_t;
|
typedef struct mca_btl_mvapi_frag_t mca_btl_mvapi_send_frag_eager_t;
|
||||||
|
|
||||||
@ -123,9 +122,6 @@ typedef struct mca_btl_mvapi_frag_t mca_btl_mvapi_recv_frag_max_t;
|
|||||||
|
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_mvapi_recv_frag_max_t);
|
OBJ_CLASS_DECLARATION(mca_btl_mvapi_recv_frag_max_t);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Allocate an IB send descriptor
|
* Allocate an IB send descriptor
|
||||||
*
|
*
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -28,7 +28,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_mvapi_proc_t);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the state of a remote process and the set of addresses
|
* Represents the state of a remote process and the set of addresses
|
||||||
@ -62,6 +61,8 @@ struct mca_btl_mvapi_proc_t {
|
|||||||
};
|
};
|
||||||
typedef struct mca_btl_mvapi_proc_t mca_btl_mvapi_proc_t;
|
typedef struct mca_btl_mvapi_proc_t mca_btl_mvapi_proc_t;
|
||||||
|
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_mvapi_proc_t);
|
||||||
|
|
||||||
mca_btl_mvapi_proc_t* mca_btl_mvapi_proc_create(ompi_proc_t* ompi_proc);
|
mca_btl_mvapi_proc_t* mca_btl_mvapi_proc_create(ompi_proc_t* ompi_proc);
|
||||||
int mca_btl_mvapi_proc_insert(mca_btl_mvapi_proc_t*, mca_btl_base_endpoint_t*);
|
int mca_btl_mvapi_proc_insert(mca_btl_mvapi_proc_t*, mca_btl_base_endpoint_t*);
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -32,8 +32,6 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_mx_endpoint_t);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Structure used to publish MX information to peers
|
* Structure used to publish MX information to peers
|
||||||
*/
|
*/
|
||||||
@ -69,6 +67,7 @@ struct mca_btl_base_endpoint_t {
|
|||||||
typedef struct mca_btl_base_endpoint_t mca_btl_base_endpoint_t;
|
typedef struct mca_btl_base_endpoint_t mca_btl_base_endpoint_t;
|
||||||
typedef mca_btl_base_endpoint_t mca_btl_mx_endpoint_t;
|
typedef mca_btl_base_endpoint_t mca_btl_mx_endpoint_t;
|
||||||
|
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_mx_endpoint_t);
|
||||||
|
|
||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -30,7 +30,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_btl_mx_frag_t);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MX send framxent derived type.
|
* MX send framxent derived type.
|
||||||
@ -59,7 +58,6 @@ extern "C" {
|
|||||||
|
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_mx_frag_user_t);
|
OBJ_CLASS_DECLARATION(mca_btl_mx_frag_user_t);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Macros to allocate/return descriptors from module specific
|
* Macros to allocate/return descriptors from module specific
|
||||||
* free list(s).
|
* free list(s).
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -28,7 +28,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_mx_proc_t);
|
|
||||||
|
|
||||||
#define MCA_BTL_MX_NOT_CONNECTED 0x0000
|
#define MCA_BTL_MX_NOT_CONNECTED 0x0000
|
||||||
#define MCA_BTL_MX_NOT_REACHEABLE 0x0001
|
#define MCA_BTL_MX_NOT_REACHEABLE 0x0001
|
||||||
@ -66,6 +65,8 @@ extern "C" {
|
|||||||
};
|
};
|
||||||
typedef struct mca_btl_mx_proc_t mca_btl_mx_proc_t;
|
typedef struct mca_btl_mx_proc_t mca_btl_mx_proc_t;
|
||||||
|
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_mx_proc_t);
|
||||||
|
|
||||||
mca_btl_mx_proc_t* mca_btl_mx_proc_create(ompi_proc_t* ompi_proc);
|
mca_btl_mx_proc_t* mca_btl_mx_proc_create(ompi_proc_t* ompi_proc);
|
||||||
int mca_btl_mx_proc_insert(mca_btl_mx_proc_t*, mca_btl_base_endpoint_t*);
|
int mca_btl_mx_proc_insert(mca_btl_mx_proc_t*, mca_btl_base_endpoint_t*);
|
||||||
int mca_btl_mx_proc_connect( mca_btl_mx_endpoint_t* module_endpoint );
|
int mca_btl_mx_proc_connect( mca_btl_mx_endpoint_t* module_endpoint );
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -34,8 +34,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_openib_endpoint_t);
|
|
||||||
|
|
||||||
|
|
||||||
struct mca_btl_openib_frag_t;
|
struct mca_btl_openib_frag_t;
|
||||||
|
|
||||||
@ -179,6 +177,8 @@ struct mca_btl_base_endpoint_t {
|
|||||||
typedef struct mca_btl_base_endpoint_t mca_btl_base_endpoint_t;
|
typedef struct mca_btl_base_endpoint_t mca_btl_base_endpoint_t;
|
||||||
typedef mca_btl_base_endpoint_t mca_btl_openib_endpoint_t;
|
typedef mca_btl_base_endpoint_t mca_btl_openib_endpoint_t;
|
||||||
|
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_openib_endpoint_t);
|
||||||
|
|
||||||
int mca_btl_openib_endpoint_send(mca_btl_base_endpoint_t* endpoint, struct mca_btl_openib_frag_t* frag);
|
int mca_btl_openib_endpoint_send(mca_btl_base_endpoint_t* endpoint, struct mca_btl_openib_frag_t* frag);
|
||||||
int mca_btl_openib_endpoint_connect(mca_btl_base_endpoint_t*);
|
int mca_btl_openib_endpoint_connect(mca_btl_base_endpoint_t*);
|
||||||
void mca_btl_openib_post_recv(void);
|
void mca_btl_openib_post_recv(void);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -28,7 +28,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_btl_openib_frag_t);
|
|
||||||
|
|
||||||
struct mca_btl_openib_header_t {
|
struct mca_btl_openib_header_t {
|
||||||
mca_btl_base_tag_t tag;
|
mca_btl_base_tag_t tag;
|
||||||
@ -97,7 +96,6 @@ struct mca_btl_openib_frag_t {
|
|||||||
typedef struct mca_btl_openib_frag_t mca_btl_openib_frag_t;
|
typedef struct mca_btl_openib_frag_t mca_btl_openib_frag_t;
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_openib_frag_t);
|
OBJ_CLASS_DECLARATION(mca_btl_openib_frag_t);
|
||||||
|
|
||||||
|
|
||||||
typedef struct mca_btl_openib_frag_t mca_btl_openib_send_frag_eager_t;
|
typedef struct mca_btl_openib_frag_t mca_btl_openib_send_frag_eager_t;
|
||||||
|
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_openib_send_frag_eager_t);
|
OBJ_CLASS_DECLARATION(mca_btl_openib_send_frag_eager_t);
|
||||||
@ -122,9 +120,6 @@ typedef struct mca_btl_openib_frag_t mca_btl_openib_send_frag_control_t;
|
|||||||
|
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_openib_send_frag_control_t);
|
OBJ_CLASS_DECLARATION(mca_btl_openib_send_frag_control_t);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Allocate an IB send descriptor
|
* Allocate an IB send descriptor
|
||||||
*
|
*
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -28,7 +28,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_openib_proc_t);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the state of a remote process and the set of addresses
|
* Represents the state of a remote process and the set of addresses
|
||||||
@ -61,6 +60,8 @@ struct mca_btl_openib_proc_t {
|
|||||||
};
|
};
|
||||||
typedef struct mca_btl_openib_proc_t mca_btl_openib_proc_t;
|
typedef struct mca_btl_openib_proc_t mca_btl_openib_proc_t;
|
||||||
|
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_openib_proc_t);
|
||||||
|
|
||||||
mca_btl_openib_proc_t* mca_btl_openib_proc_create(ompi_proc_t* ompi_proc);
|
mca_btl_openib_proc_t* mca_btl_openib_proc_create(ompi_proc_t* ompi_proc);
|
||||||
int mca_btl_openib_proc_insert(mca_btl_openib_proc_t*, mca_btl_base_endpoint_t*);
|
int mca_btl_openib_proc_insert(mca_btl_openib_proc_t*, mca_btl_base_endpoint_t*);
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -22,8 +22,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_btl_portals_frag_t);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Portals send fragment derived type
|
* Portals send fragment derived type
|
||||||
@ -48,7 +46,6 @@ struct mca_btl_portals_frag_t {
|
|||||||
typedef struct mca_btl_portals_frag_t mca_btl_portals_frag_t;
|
typedef struct mca_btl_portals_frag_t mca_btl_portals_frag_t;
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_portals_frag_t);
|
OBJ_CLASS_DECLARATION(mca_btl_portals_frag_t);
|
||||||
|
|
||||||
|
|
||||||
typedef struct mca_btl_portals_frag_t mca_btl_portals_frag_eager_t;
|
typedef struct mca_btl_portals_frag_t mca_btl_portals_frag_eager_t;
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_portals_frag_eager_t);
|
OBJ_CLASS_DECLARATION(mca_btl_portals_frag_eager_t);
|
||||||
|
|
||||||
@ -61,7 +58,6 @@ OBJ_CLASS_DECLARATION(mca_btl_portals_frag_user_t);
|
|||||||
typedef struct mca_btl_portals_frag_t mca_btl_portals_frag_recv_t;
|
typedef struct mca_btl_portals_frag_t mca_btl_portals_frag_recv_t;
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_portals_frag_recv_t);
|
OBJ_CLASS_DECLARATION(mca_btl_portals_frag_recv_t);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Macros to allocate/return descriptors from module specific
|
* Macros to allocate/return descriptors from module specific
|
||||||
* free list(s).
|
* free list(s).
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -220,7 +220,7 @@ struct mca_btl_base_descriptor_t* mca_btl_self_prepare_src(
|
|||||||
max_data = frag->size - reserve;
|
max_data = frag->size - reserve;
|
||||||
}
|
}
|
||||||
iov.iov_len = max_data;
|
iov.iov_len = max_data;
|
||||||
iov.iov_base = (void*)((unsigned char*)(frag+1) + reserve);
|
iov.iov_base = (IOVBASE_TYPE*)((unsigned char*)(frag+1) + reserve);
|
||||||
|
|
||||||
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
|
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
|
||||||
if(rc < 0) {
|
if(rc < 0) {
|
||||||
@ -312,7 +312,7 @@ int mca_btl_self_send(
|
|||||||
des->des_dst = des->des_src;
|
des->des_dst = des->des_src;
|
||||||
des->des_dst_cnt = des->des_src_cnt;
|
des->des_dst_cnt = des->des_src_cnt;
|
||||||
/* upcall */
|
/* upcall */
|
||||||
mca_btl_self_component.self_reg[tag].cbfunc(btl,tag,des,OMPI_SUCCESS);
|
mca_btl_self_component.self_reg[tag].cbfunc( btl, tag, des, (void*)OMPI_SUCCESS );
|
||||||
des->des_dst = NULL;
|
des->des_dst = NULL;
|
||||||
des->des_dst_cnt = 0;
|
des->des_dst_cnt = 0;
|
||||||
/* send completion */
|
/* send completion */
|
||||||
@ -336,9 +336,9 @@ extern int mca_btl_self_rdma(
|
|||||||
mca_btl_base_segment_t* dst = des->des_dst;
|
mca_btl_base_segment_t* dst = des->des_dst;
|
||||||
size_t src_cnt = des->des_src_cnt;
|
size_t src_cnt = des->des_src_cnt;
|
||||||
size_t dst_cnt = des->des_dst_cnt;
|
size_t dst_cnt = des->des_dst_cnt;
|
||||||
unsigned char* src_addr = src->seg_addr.pval;
|
unsigned char* src_addr = (unsigned char*)src->seg_addr.pval;
|
||||||
size_t src_len = src->seg_len;
|
size_t src_len = src->seg_len;
|
||||||
unsigned char* dst_addr = dst->seg_addr.pval;
|
unsigned char* dst_addr = (unsigned char*)dst->seg_addr.pval;
|
||||||
size_t dst_len = dst->seg_len;
|
size_t dst_len = dst->seg_len;
|
||||||
|
|
||||||
while(src_len && dst_len) {
|
while(src_len && dst_len) {
|
||||||
@ -349,7 +349,7 @@ extern int mca_btl_self_rdma(
|
|||||||
/* advance src */
|
/* advance src */
|
||||||
if(--src_cnt != 0) {
|
if(--src_cnt != 0) {
|
||||||
src++;
|
src++;
|
||||||
src_addr = src->seg_addr.pval;
|
src_addr = (unsigned char*)src->seg_addr.pval;
|
||||||
src_len = src->seg_len;
|
src_len = src->seg_len;
|
||||||
} else {
|
} else {
|
||||||
src_len = 0;
|
src_len = 0;
|
||||||
@ -358,7 +358,7 @@ extern int mca_btl_self_rdma(
|
|||||||
/* advance dst */
|
/* advance dst */
|
||||||
if(--dst_cnt != 0) {
|
if(--dst_cnt != 0) {
|
||||||
dst++;
|
dst++;
|
||||||
dst_addr = dst->seg_addr.pval;
|
dst_addr = (unsigned char*)dst->seg_addr.pval;
|
||||||
dst_len = dst->seg_len;
|
dst_len = dst->seg_len;
|
||||||
} else {
|
} else {
|
||||||
dst_len = 0;
|
dst_len = 0;
|
||||||
@ -373,7 +373,7 @@ extern int mca_btl_self_rdma(
|
|||||||
if(src_len == 0) {
|
if(src_len == 0) {
|
||||||
if(--src_cnt != 0) {
|
if(--src_cnt != 0) {
|
||||||
src++;
|
src++;
|
||||||
src_addr = src->seg_addr.pval;
|
src_addr = (unsigned char*)src->seg_addr.pval;
|
||||||
src_len = src->seg_len;
|
src_len = src->seg_len;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -385,7 +385,7 @@ extern int mca_btl_self_rdma(
|
|||||||
if(dst_len == 0) {
|
if(dst_len == 0) {
|
||||||
if(--dst_cnt != 0) {
|
if(--dst_cnt != 0) {
|
||||||
dst++;
|
dst++;
|
||||||
dst_addr = src->seg_addr.pval;
|
dst_addr = (unsigned char*)src->seg_addr.pval;
|
||||||
dst_len = src->seg_len;
|
dst_len = src->seg_len;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -39,7 +39,6 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shared Memory (SELF) BTL module.
|
* Shared Memory (SELF) BTL module.
|
||||||
*/
|
*/
|
||||||
@ -55,7 +54,7 @@ struct mca_btl_self_component_t {
|
|||||||
mca_btl_base_recv_reg_t self_reg[256];
|
mca_btl_base_recv_reg_t self_reg[256];
|
||||||
};
|
};
|
||||||
typedef struct mca_btl_self_component_t mca_btl_self_component_t;
|
typedef struct mca_btl_self_component_t mca_btl_self_component_t;
|
||||||
extern mca_btl_self_component_t mca_btl_self_component;
|
OMPI_DECLSPEC extern mca_btl_self_component_t mca_btl_self_component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register shared memory module parameters with the MCA framework
|
* Register shared memory module parameters with the MCA framework
|
||||||
@ -257,10 +256,9 @@ extern int mca_btl_self_rdma(
|
|||||||
struct mca_btl_base_descriptor_t* descriptor
|
struct mca_btl_base_descriptor_t* descriptor
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -155,7 +155,7 @@ mca_btl_base_module_t** mca_btl_self_component_init(
|
|||||||
|
|
||||||
/* allocate the Shared Memory PTL */
|
/* allocate the Shared Memory PTL */
|
||||||
*num_btls = 1;
|
*num_btls = 1;
|
||||||
btls = malloc((*num_btls)*sizeof(mca_btl_base_module_t*));
|
btls = (mca_btl_base_module_t**)malloc((*num_btls)*sizeof(mca_btl_base_module_t*));
|
||||||
if (NULL == btls) {
|
if (NULL == btls) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,23 @@
|
|||||||
#include "btl_self_frag.h"
|
/*
|
||||||
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
|
* University Research and Technology
|
||||||
|
* Corporation. All rights reserved.
|
||||||
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
|
* of Tennessee Research Foundation. All rights
|
||||||
|
* reserved.
|
||||||
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
|
* University of Stuttgart. All rights reserved.
|
||||||
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
|
* All rights reserved.
|
||||||
|
* $COPYRIGHT$
|
||||||
|
*
|
||||||
|
* Additional copyrights may follow
|
||||||
|
*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ompi_config.h"
|
||||||
|
#include "btl_self_frag.h"
|
||||||
|
|
||||||
static inline void mca_btl_self_frag_constructor(mca_btl_self_frag_t* frag)
|
static inline void mca_btl_self_frag_constructor(mca_btl_self_frag_t* frag)
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -22,7 +22,6 @@
|
|||||||
#define MCA_BTL_SELF_SEND_FRAG_H
|
#define MCA_BTL_SELF_SEND_FRAG_H
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "ompi_config.h"
|
|
||||||
#include "ompi/class/ompi_free_list.h"
|
#include "ompi/class/ompi_free_list.h"
|
||||||
#include "btl_self.h"
|
#include "btl_self.h"
|
||||||
|
|
||||||
@ -45,7 +44,6 @@ OBJ_CLASS_DECLARATION(mca_btl_self_frag_eager_t);
|
|||||||
OBJ_CLASS_DECLARATION(mca_btl_self_frag_send_t);
|
OBJ_CLASS_DECLARATION(mca_btl_self_frag_send_t);
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_self_frag_rdma_t);
|
OBJ_CLASS_DECLARATION(mca_btl_self_frag_rdma_t);
|
||||||
|
|
||||||
|
|
||||||
#define MCA_BTL_SELF_FRAG_ALLOC_EAGER(frag, rc) \
|
#define MCA_BTL_SELF_FRAG_ALLOC_EAGER(frag, rc) \
|
||||||
{ \
|
{ \
|
||||||
ompi_free_list_item_t* item; \
|
ompi_free_list_item_t* item; \
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -215,7 +215,7 @@ int mca_btl_sm_add_procs_same_base_addr(
|
|||||||
|
|
||||||
/* If we got here, the proc is reachable via sm. So
|
/* If we got here, the proc is reachable via sm. So
|
||||||
initialize the peers information */
|
initialize the peers information */
|
||||||
peer = peers[proc] = malloc(sizeof(struct mca_btl_base_endpoint_t));
|
peer = peers[proc] = (struct mca_btl_base_endpoint_t*)malloc(sizeof(struct mca_btl_base_endpoint_t));
|
||||||
if( NULL == peer ){
|
if( NULL == peer ){
|
||||||
return_code=OMPI_ERR_OUT_OF_RESOURCE;
|
return_code=OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
goto CLEANUP;
|
goto CLEANUP;
|
||||||
@ -224,7 +224,7 @@ int mca_btl_sm_add_procs_same_base_addr(
|
|||||||
mca_btl_sm_component.num_smp_procs;
|
mca_btl_sm_component.num_smp_procs;
|
||||||
|
|
||||||
#if OMPI_ENABLE_PROGRESS_THREADS == 1
|
#if OMPI_ENABLE_PROGRESS_THREADS == 1
|
||||||
sprintf(path, "%s/sm_fifo.%lu", orte_process_info.job_session_dir,
|
sprintf(path, "%s"OPAL_PATH_SEP"sm_fifo.%lu", orte_process_info.job_session_dir,
|
||||||
(unsigned long)procs[proc]->proc_name.vpid);
|
(unsigned long)procs[proc]->proc_name.vpid);
|
||||||
peer->fifo_fd = open(path, O_WRONLY);
|
peer->fifo_fd = open(path, O_WRONLY);
|
||||||
if(peer->fifo_fd < 0) {
|
if(peer->fifo_fd < 0) {
|
||||||
@ -257,7 +257,7 @@ int mca_btl_sm_add_procs_same_base_addr(
|
|||||||
goto CLEANUP;
|
goto CLEANUP;
|
||||||
}
|
}
|
||||||
mca_btl_sm_component.sm_mpool_base =
|
mca_btl_sm_component.sm_mpool_base =
|
||||||
mca_btl_sm_component.sm_mpool->mpool_base(mca_btl_sm_component.sm_mpool_base);
|
mca_btl_sm_component.sm_mpool->mpool_base((mca_mpool_base_module_t*)mca_btl_sm_component.sm_mpool_base);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* make sure that my_smp_rank has been defined */
|
/* make sure that my_smp_rank has been defined */
|
||||||
@ -320,7 +320,7 @@ int mca_btl_sm_add_procs_same_base_addr(
|
|||||||
if ( !mca_btl_sm[0].btl_inited ) {
|
if ( !mca_btl_sm[0].btl_inited ) {
|
||||||
/* set file name */
|
/* set file name */
|
||||||
len=asprintf(&(mca_btl_sm_component.sm_resouce_ctl_file),
|
len=asprintf(&(mca_btl_sm_component.sm_resouce_ctl_file),
|
||||||
"%s/shared_mem_btl_module.%s",orte_process_info.job_session_dir,
|
"%s"OPAL_PATH_SEP"shared_mem_btl_module.%s",orte_process_info.job_session_dir,
|
||||||
orte_system_info.nodename);
|
orte_system_info.nodename);
|
||||||
if( 0 > len ) {
|
if( 0 > len ) {
|
||||||
goto CLEANUP;
|
goto CLEANUP;
|
||||||
@ -364,7 +364,7 @@ int mca_btl_sm_add_procs_same_base_addr(
|
|||||||
/* allocate array of ompi_fifo_t* elements -
|
/* allocate array of ompi_fifo_t* elements -
|
||||||
* offset relative to base segement is stored, so that
|
* offset relative to base segement is stored, so that
|
||||||
* this can be used by other procs */
|
* this can be used by other procs */
|
||||||
mca_btl_sm_component.sm_ctl_header->fifo=
|
mca_btl_sm_component.sm_ctl_header->fifo= (volatile ompi_fifo_t**)
|
||||||
mca_btl_sm_component.sm_mpool->mpool_alloc
|
mca_btl_sm_component.sm_mpool->mpool_alloc
|
||||||
(mca_btl_sm_component.sm_mpool, n_to_allocate*sizeof(ompi_fifo_t *),
|
(mca_btl_sm_component.sm_mpool, n_to_allocate*sizeof(ompi_fifo_t *),
|
||||||
CACHE_LINE_SIZE, 0, NULL);
|
CACHE_LINE_SIZE, 0, NULL);
|
||||||
@ -454,7 +454,7 @@ int mca_btl_sm_add_procs_same_base_addr(
|
|||||||
( (char *)(mca_btl_sm_component.sm_ctl_header->segment_header.
|
( (char *)(mca_btl_sm_component.sm_ctl_header->segment_header.
|
||||||
base_shared_mem_segment) +
|
base_shared_mem_segment) +
|
||||||
(long )(mca_btl_sm_component.sm_mpool->mpool_base(mca_btl_sm_component.sm_mpool)) );
|
(long )(mca_btl_sm_component.sm_mpool->mpool_base(mca_btl_sm_component.sm_mpool)) );
|
||||||
tmp_ptr[mca_btl_sm_component.my_smp_rank]=
|
tmp_ptr[mca_btl_sm_component.my_smp_rank]=(char*)
|
||||||
mca_btl_sm_component.sm_mpool->mpool_base(mca_btl_sm_component.sm_mpool);
|
mca_btl_sm_component.sm_mpool->mpool_base(mca_btl_sm_component.sm_mpool);
|
||||||
/* memory barrier to ensure this flag is set before other
|
/* memory barrier to ensure this flag is set before other
|
||||||
* flags are set */
|
* flags are set */
|
||||||
@ -483,8 +483,8 @@ int mca_btl_sm_add_procs_same_base_addr(
|
|||||||
}
|
}
|
||||||
|
|
||||||
for( j=0 ; j < n_to_allocate ; j++ ) {
|
for( j=0 ; j < n_to_allocate ; j++ ) {
|
||||||
my_fifos[j].head=OMPI_CB_FREE;
|
my_fifos[j].head = (ompi_cb_fifo_wrapper_t*)OMPI_CB_FREE;
|
||||||
my_fifos[j].tail=OMPI_CB_FREE;
|
my_fifos[j].tail = (ompi_cb_fifo_wrapper_t*)OMPI_CB_FREE;
|
||||||
opal_atomic_unlock(&(my_fifos[j].head_lock));
|
opal_atomic_unlock(&(my_fifos[j].head_lock));
|
||||||
opal_atomic_unlock(&(my_fifos[j].tail_lock));
|
opal_atomic_unlock(&(my_fifos[j].tail_lock));
|
||||||
}
|
}
|
||||||
@ -677,7 +677,7 @@ int mca_btl_sm_add_procs(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* initialize the peers information */
|
/* initialize the peers information */
|
||||||
peers[proc]=malloc(sizeof(struct mca_btl_base_endpoint_t));
|
peers[proc] = (struct mca_btl_base_endpoint_t*)malloc(sizeof(struct mca_btl_base_endpoint_t));
|
||||||
if( NULL == peers[proc] ){
|
if( NULL == peers[proc] ){
|
||||||
return_code=OMPI_ERR_OUT_OF_RESOURCE;
|
return_code=OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
goto CLEANUP;
|
goto CLEANUP;
|
||||||
@ -828,7 +828,7 @@ struct mca_btl_base_descriptor_t* mca_btl_sm_prepare_src(
|
|||||||
max_data = frag->size - reserve;
|
max_data = frag->size - reserve;
|
||||||
}
|
}
|
||||||
iov.iov_len = max_data;
|
iov.iov_len = max_data;
|
||||||
iov.iov_base = (void*)(((unsigned char*)(frag+1)) + reserve);
|
iov.iov_base = (IOVBASE_TYPE*)(((unsigned char*)(frag+1)) + reserve);
|
||||||
|
|
||||||
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
|
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
|
||||||
if(rc < 0) {
|
if(rc < 0) {
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -50,7 +50,6 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Shared Memory resource managment
|
* Shared Memory resource managment
|
||||||
*/
|
*/
|
||||||
@ -143,7 +142,7 @@ struct mca_btl_sm_component_t {
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
typedef struct mca_btl_sm_component_t mca_btl_sm_component_t;
|
typedef struct mca_btl_sm_component_t mca_btl_sm_component_t;
|
||||||
extern mca_btl_sm_component_t mca_btl_sm_component;
|
OMPI_DECLSPEC extern mca_btl_sm_component_t mca_btl_sm_component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register shared memory module parameters with the MCA framework
|
* Register shared memory module parameters with the MCA framework
|
||||||
@ -351,9 +350,9 @@ void mca_btl_sm_component_event_thread(opal_object_t*);
|
|||||||
#define MCA_BTL_SM_SIGNAL_PEER(peer)
|
#define MCA_BTL_SM_SIGNAL_PEER(peer)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -250,7 +250,7 @@ mca_btl_base_module_t** mca_btl_sm_component_init(
|
|||||||
#if OMPI_ENABLE_PROGRESS_THREADS == 1
|
#if OMPI_ENABLE_PROGRESS_THREADS == 1
|
||||||
/* create a named pipe to receive events */
|
/* create a named pipe to receive events */
|
||||||
sprintf( mca_btl_sm_component.sm_fifo_path,
|
sprintf( mca_btl_sm_component.sm_fifo_path,
|
||||||
"%s/sm_fifo.%lu", orte_process_info.job_session_dir,
|
"%s"OPAL_PATH_SEP"sm_fifo.%lu", orte_process_info.job_session_dir,
|
||||||
(unsigned long)orte_process_info.my_name->vpid );
|
(unsigned long)orte_process_info.my_name->vpid );
|
||||||
if(mkfifo(mca_btl_sm_component.sm_fifo_path, 0660) < 0) {
|
if(mkfifo(mca_btl_sm_component.sm_fifo_path, 0660) < 0) {
|
||||||
opal_output(0, "mca_btl_sm_component_init: mkfifo failed with errno=%d\n",errno);
|
opal_output(0, "mca_btl_sm_component_init: mkfifo failed with errno=%d\n",errno);
|
||||||
@ -270,7 +270,7 @@ mca_btl_base_module_t** mca_btl_sm_component_init(
|
|||||||
|
|
||||||
/* allocate the Shared Memory PTL */
|
/* allocate the Shared Memory PTL */
|
||||||
*num_ptls = 2;
|
*num_ptls = 2;
|
||||||
ptls = malloc((*num_ptls)*sizeof(mca_btl_base_module_t*));
|
ptls = (mca_btl_base_module_t**)malloc((*num_ptls)*sizeof(mca_btl_base_module_t*));
|
||||||
if (NULL == ptls) {
|
if (NULL == ptls) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -286,14 +286,15 @@ mca_btl_base_module_t** mca_btl_sm_component_init(
|
|||||||
mca_btl_sm[i].super.btl_max_send_size=mca_btl_sm_component.max_frag_size;
|
mca_btl_sm[i].super.btl_max_send_size=mca_btl_sm_component.max_frag_size;
|
||||||
mca_btl_sm[i].super.btl_min_rdma_size=mca_btl_sm_component.max_frag_size;
|
mca_btl_sm[i].super.btl_min_rdma_size=mca_btl_sm_component.max_frag_size;
|
||||||
mca_btl_sm[i].super.btl_max_rdma_size=mca_btl_sm_component.max_frag_size;
|
mca_btl_sm[i].super.btl_max_rdma_size=mca_btl_sm_component.max_frag_size;
|
||||||
/* Because of the strange behavior of the qsort function on some OSes
|
/* The order in which the SM modules are initialized is important as only
|
||||||
* when it has to order items with the same value,
|
* the first one (the one using the mca_btl_sm_add_procs_same_base_addr)
|
||||||
* we have to make sure that the add_procs functions are called in the
|
* will setup all the memory for the internal structures (sm_proc_connect).
|
||||||
* correct order (ie. mca_btl_sm_add_procs_same_base_addr before
|
* Therefore, the order in which the two SM module will be after the
|
||||||
* mca_btl_sm_add_procs) or we will face segfault as only the first
|
* selection is important. We have to make sure they get sorted in the
|
||||||
* allocate memory for the mca_btl_sm_component.sm_proc_connect array.
|
* correct order. The simplest way is to force the exclusivity of the
|
||||||
|
* second module to something lower than the exclusivity of the first one.
|
||||||
*/
|
*/
|
||||||
mca_btl_sm[i].super.btl_exclusivity=mca_btl_sm_component.sm_exclusivity;
|
mca_btl_sm[i].super.btl_exclusivity = mca_btl_sm_component.sm_exclusivity - i;
|
||||||
mca_btl_sm[i].super.btl_latency = mca_btl_sm_component.sm_latency; /* lowest latency */
|
mca_btl_sm[i].super.btl_latency = mca_btl_sm_component.sm_latency; /* lowest latency */
|
||||||
mca_btl_sm[i].super.btl_bandwidth = 900; /* not really used now since exclusivity is set to the highest value */
|
mca_btl_sm[i].super.btl_bandwidth = 900; /* not really used now since exclusivity is set to the highest value */
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -56,7 +56,6 @@ OBJ_CLASS_DECLARATION(mca_btl_sm_frag_t);
|
|||||||
OBJ_CLASS_DECLARATION(mca_btl_sm_frag1_t);
|
OBJ_CLASS_DECLARATION(mca_btl_sm_frag1_t);
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_sm_frag2_t);
|
OBJ_CLASS_DECLARATION(mca_btl_sm_frag2_t);
|
||||||
|
|
||||||
|
|
||||||
#define MCA_BTL_SM_FRAG_ALLOC1(frag, rc) \
|
#define MCA_BTL_SM_FRAG_ALLOC1(frag, rc) \
|
||||||
{ \
|
{ \
|
||||||
ompi_free_list_item_t* item; \
|
ompi_free_list_item_t* item; \
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -275,7 +275,7 @@ mca_btl_base_descriptor_t* mca_btl_tcp_prepare_src(
|
|||||||
max_data = frag->size - reserve;
|
max_data = frag->size - reserve;
|
||||||
}
|
}
|
||||||
iov.iov_len = max_data;
|
iov.iov_len = max_data;
|
||||||
iov.iov_base = (void*)(((unsigned char*)(frag+1)) + reserve);
|
iov.iov_base = (IOVBASE_TYPE*)(((unsigned char*)(frag+1)) + reserve);
|
||||||
|
|
||||||
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
|
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &free_after);
|
||||||
if( rc < 0 ) {
|
if( rc < 0 ) {
|
||||||
@ -383,13 +383,13 @@ int mca_btl_tcp_send(
|
|||||||
frag->iov_idx = 0;
|
frag->iov_idx = 0;
|
||||||
frag->iov_cnt = 1;
|
frag->iov_cnt = 1;
|
||||||
frag->iov_ptr = frag->iov;
|
frag->iov_ptr = frag->iov;
|
||||||
frag->iov[0].iov_base = (void*)&frag->hdr;
|
frag->iov[0].iov_base = (IOVBASE_TYPE*)&frag->hdr;
|
||||||
frag->iov[0].iov_len = sizeof(frag->hdr);
|
frag->iov[0].iov_len = sizeof(frag->hdr);
|
||||||
frag->hdr.size = 0;
|
frag->hdr.size = 0;
|
||||||
for(i=0; i<frag->base.des_src_cnt; i++) {
|
for(i=0; i<frag->base.des_src_cnt; i++) {
|
||||||
frag->hdr.size += frag->segments[i].seg_len;
|
frag->hdr.size += frag->segments[i].seg_len;
|
||||||
frag->iov[i+1].iov_len = frag->segments[i].seg_len;
|
frag->iov[i+1].iov_len = frag->segments[i].seg_len;
|
||||||
frag->iov[i+1].iov_base = frag->segments[i].seg_addr.pval;
|
frag->iov[i+1].iov_base = (IOVBASE_TYPE*)frag->segments[i].seg_addr.pval;
|
||||||
frag->iov_cnt++;
|
frag->iov_cnt++;
|
||||||
}
|
}
|
||||||
frag->hdr.base.tag = tag;
|
frag->hdr.base.tag = tag;
|
||||||
@ -424,14 +424,14 @@ int mca_btl_tcp_put(
|
|||||||
frag->hdr.size = 0;
|
frag->hdr.size = 0;
|
||||||
frag->iov_cnt = 2;
|
frag->iov_cnt = 2;
|
||||||
frag->iov_ptr = frag->iov;
|
frag->iov_ptr = frag->iov;
|
||||||
frag->iov[0].iov_base = (void*)&frag->hdr;
|
frag->iov[0].iov_base = (IOVBASE_TYPE*)&frag->hdr;
|
||||||
frag->iov[0].iov_len = sizeof(frag->hdr);
|
frag->iov[0].iov_len = sizeof(frag->hdr);
|
||||||
frag->iov[1].iov_base = (void*)frag->base.des_dst;
|
frag->iov[1].iov_base = (IOVBASE_TYPE*)frag->base.des_dst;
|
||||||
frag->iov[1].iov_len = frag->base.des_dst_cnt * sizeof(mca_btl_base_segment_t);
|
frag->iov[1].iov_len = frag->base.des_dst_cnt * sizeof(mca_btl_base_segment_t);
|
||||||
for(i=0; i<frag->base.des_src_cnt; i++) {
|
for(i=0; i<frag->base.des_src_cnt; i++) {
|
||||||
frag->hdr.size += frag->segments[i].seg_len;
|
frag->hdr.size += frag->segments[i].seg_len;
|
||||||
frag->iov[i+2].iov_len = frag->segments[i].seg_len;
|
frag->iov[i+2].iov_len = frag->segments[i].seg_len;
|
||||||
frag->iov[i+2].iov_base = frag->segments[i].seg_addr.pval;
|
frag->iov[i+2].iov_base = (IOVBASE_TYPE*)frag->segments[i].seg_addr.pval;
|
||||||
frag->iov_cnt++;
|
frag->iov_cnt++;
|
||||||
}
|
}
|
||||||
frag->hdr.base.tag = MCA_BTL_TAG_BTL;
|
frag->hdr.base.tag = MCA_BTL_TAG_BTL;
|
||||||
@ -466,9 +466,9 @@ int mca_btl_tcp_get(
|
|||||||
frag->hdr.size = 0;
|
frag->hdr.size = 0;
|
||||||
frag->iov_cnt = 2;
|
frag->iov_cnt = 2;
|
||||||
frag->iov_ptr = frag->iov;
|
frag->iov_ptr = frag->iov;
|
||||||
frag->iov[0].iov_base = (void*)&frag->hdr;
|
frag->iov[0].iov_base = (IOVBASE_TYPE*)&frag->hdr;
|
||||||
frag->iov[0].iov_len = sizeof(frag->hdr);
|
frag->iov[0].iov_len = sizeof(frag->hdr);
|
||||||
frag->iov[1].iov_base = (void*)frag->base.des_src;
|
frag->iov[1].iov_base = (IOVBASE_TYPE*)frag->base.des_src;
|
||||||
frag->iov[1].iov_len = frag->base.des_src_cnt * sizeof(mca_btl_base_segment_t);
|
frag->iov[1].iov_len = frag->base.des_src_cnt * sizeof(mca_btl_base_segment_t);
|
||||||
frag->hdr.base.tag = MCA_BTL_TAG_BTL;
|
frag->hdr.base.tag = MCA_BTL_TAG_BTL;
|
||||||
frag->hdr.type = MCA_BTL_TCP_HDR_TYPE_GET;
|
frag->hdr.type = MCA_BTL_TCP_HDR_TYPE_GET;
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -83,9 +83,7 @@ struct mca_btl_tcp_component_t {
|
|||||||
};
|
};
|
||||||
typedef struct mca_btl_tcp_component_t mca_btl_tcp_component_t;
|
typedef struct mca_btl_tcp_component_t mca_btl_tcp_component_t;
|
||||||
|
|
||||||
extern mca_btl_tcp_component_t mca_btl_tcp_component;
|
OMPI_DECLSPEC extern mca_btl_tcp_component_t mca_btl_tcp_component;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BTL Module Interface
|
* BTL Module Interface
|
||||||
@ -106,6 +104,11 @@ struct mca_btl_tcp_module_t {
|
|||||||
typedef struct mca_btl_tcp_module_t mca_btl_tcp_module_t;
|
typedef struct mca_btl_tcp_module_t mca_btl_tcp_module_t;
|
||||||
extern mca_btl_tcp_module_t mca_btl_tcp_module;
|
extern mca_btl_tcp_module_t mca_btl_tcp_module;
|
||||||
|
|
||||||
|
#if defined(__WINDOWS__)
|
||||||
|
#define CLOSE_THE_SOCKET(socket) closesocket(socket)
|
||||||
|
#else
|
||||||
|
#define CLOSE_THE_SOCKET(socket) close(socket)
|
||||||
|
#endif /* defined(__WINDOWS__) */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register TCP component parameters with the MCA framework
|
* Register TCP component parameters with the MCA framework
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -236,9 +236,6 @@ int mca_btl_tcp_component_open(void)
|
|||||||
int mca_btl_tcp_component_close(void)
|
int mca_btl_tcp_component_close(void)
|
||||||
{
|
{
|
||||||
opal_list_item_t* item;
|
opal_list_item_t* item;
|
||||||
#ifdef __WINDOWS__
|
|
||||||
WSACleanup();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if(NULL != mca_btl_tcp_component.tcp_if_include)
|
if(NULL != mca_btl_tcp_component.tcp_if_include)
|
||||||
free(mca_btl_tcp_component.tcp_if_include);
|
free(mca_btl_tcp_component.tcp_if_include);
|
||||||
@ -249,7 +246,7 @@ int mca_btl_tcp_component_close(void)
|
|||||||
|
|
||||||
if (mca_btl_tcp_component.tcp_listen_sd >= 0) {
|
if (mca_btl_tcp_component.tcp_listen_sd >= 0) {
|
||||||
opal_event_del(&mca_btl_tcp_component.tcp_recv_event);
|
opal_event_del(&mca_btl_tcp_component.tcp_recv_event);
|
||||||
close(mca_btl_tcp_component.tcp_listen_sd);
|
CLOSE_THE_SOCKET(mca_btl_tcp_component.tcp_listen_sd);
|
||||||
mca_btl_tcp_component.tcp_listen_sd = -1;
|
mca_btl_tcp_component.tcp_listen_sd = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -271,6 +268,11 @@ int mca_btl_tcp_component_close(void)
|
|||||||
OBJ_DESTRUCT(&mca_btl_tcp_component.tcp_frag_max);
|
OBJ_DESTRUCT(&mca_btl_tcp_component.tcp_frag_max);
|
||||||
OBJ_DESTRUCT(&mca_btl_tcp_component.tcp_frag_user);
|
OBJ_DESTRUCT(&mca_btl_tcp_component.tcp_frag_user);
|
||||||
OBJ_DESTRUCT(&mca_btl_tcp_component.tcp_lock);
|
OBJ_DESTRUCT(&mca_btl_tcp_component.tcp_lock);
|
||||||
|
|
||||||
|
#ifdef __WINDOWS__
|
||||||
|
WSACleanup();
|
||||||
|
#endif
|
||||||
|
|
||||||
return OMPI_SUCCESS;
|
return OMPI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -561,7 +563,7 @@ static void mca_btl_tcp_component_accept(void)
|
|||||||
if(sd < 0) {
|
if(sd < 0) {
|
||||||
if(opal_socket_errno == EINTR)
|
if(opal_socket_errno == EINTR)
|
||||||
continue;
|
continue;
|
||||||
if(opal_socket_errno != EAGAIN || opal_socket_errno != EWOULDBLOCK)
|
if(opal_socket_errno != EAGAIN && opal_socket_errno != EWOULDBLOCK)
|
||||||
BTL_ERROR(("accept() failed with errno %d.", opal_socket_errno));
|
BTL_ERROR(("accept() failed with errno %d.", opal_socket_errno));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -599,7 +601,7 @@ static void mca_btl_tcp_component_recv_handler(int sd, short flags, void* user)
|
|||||||
/* recv the process identifier */
|
/* recv the process identifier */
|
||||||
retval = recv(sd, (char *)&guid, sizeof(guid), 0);
|
retval = recv(sd, (char *)&guid, sizeof(guid), 0);
|
||||||
if(retval != sizeof(guid)) {
|
if(retval != sizeof(guid)) {
|
||||||
close(sd);
|
CLOSE_THE_SOCKET(sd);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
OMPI_PROCESS_NAME_NTOH(guid);
|
OMPI_PROCESS_NAME_NTOH(guid);
|
||||||
@ -618,20 +620,20 @@ static void mca_btl_tcp_component_recv_handler(int sd, short flags, void* user)
|
|||||||
btl_proc = mca_btl_tcp_proc_lookup(&guid);
|
btl_proc = mca_btl_tcp_proc_lookup(&guid);
|
||||||
if(NULL == btl_proc) {
|
if(NULL == btl_proc) {
|
||||||
BTL_ERROR(("errno=%d",errno));
|
BTL_ERROR(("errno=%d",errno));
|
||||||
close(sd);
|
CLOSE_THE_SOCKET(sd);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* lookup peer address */
|
/* lookup peer address */
|
||||||
if(getpeername(sd, (struct sockaddr*)&addr, &addr_len) != 0) {
|
if(getpeername(sd, (struct sockaddr*)&addr, &addr_len) != 0) {
|
||||||
BTL_ERROR(("getpeername() failed with errno=%d", opal_socket_errno));
|
BTL_ERROR(("getpeername() failed with errno=%d", opal_socket_errno));
|
||||||
close(sd);
|
CLOSE_THE_SOCKET(sd);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* are there any existing peer instances will to accept this connection */
|
/* are there any existing peer instances will to accept this connection */
|
||||||
if(mca_btl_tcp_proc_accept(btl_proc, &addr, sd) == false) {
|
if(mca_btl_tcp_proc_accept(btl_proc, &addr, sd) == false) {
|
||||||
close(sd);
|
CLOSE_THE_SOCKET(sd);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -349,7 +349,7 @@ void mca_btl_tcp_endpoint_close(mca_btl_base_endpoint_t* btl_endpoint)
|
|||||||
if(btl_endpoint->endpoint_sd >= 0) {
|
if(btl_endpoint->endpoint_sd >= 0) {
|
||||||
opal_event_del(&btl_endpoint->endpoint_recv_event);
|
opal_event_del(&btl_endpoint->endpoint_recv_event);
|
||||||
opal_event_del(&btl_endpoint->endpoint_send_event);
|
opal_event_del(&btl_endpoint->endpoint_send_event);
|
||||||
close(btl_endpoint->endpoint_sd);
|
CLOSE_THE_SOCKET(btl_endpoint->endpoint_sd);
|
||||||
btl_endpoint->endpoint_sd = -1;
|
btl_endpoint->endpoint_sd = -1;
|
||||||
#if MCA_BTL_TCP_ENDPOINT_CACHE
|
#if MCA_BTL_TCP_ENDPOINT_CACHE
|
||||||
free( btl_endpoint->endpoint_cache );
|
free( btl_endpoint->endpoint_cache );
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -29,8 +29,6 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_tcp_endpoint_t);
|
|
||||||
|
|
||||||
#define MCA_BTL_TCP_ENDPOINT_CACHE 1
|
#define MCA_BTL_TCP_ENDPOINT_CACHE 1
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -78,6 +76,7 @@ struct mca_btl_base_endpoint_t {
|
|||||||
|
|
||||||
typedef struct mca_btl_base_endpoint_t mca_btl_base_endpoint_t;
|
typedef struct mca_btl_base_endpoint_t mca_btl_base_endpoint_t;
|
||||||
typedef mca_btl_base_endpoint_t mca_btl_tcp_endpoint_t;
|
typedef mca_btl_base_endpoint_t mca_btl_tcp_endpoint_t;
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_tcp_endpoint_t);
|
||||||
|
|
||||||
void mca_btl_tcp_set_socket_options(int sd);
|
void mca_btl_tcp_set_socket_options(int sd);
|
||||||
void mca_btl_tcp_endpoint_close(mca_btl_base_endpoint_t*);
|
void mca_btl_tcp_endpoint_close(mca_btl_base_endpoint_t*);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -236,7 +236,7 @@ bool mca_btl_tcp_frag_recv(mca_btl_tcp_frag_t* frag, int sd)
|
|||||||
switch(frag->hdr.type) {
|
switch(frag->hdr.type) {
|
||||||
case MCA_BTL_TCP_HDR_TYPE_SEND:
|
case MCA_BTL_TCP_HDR_TYPE_SEND:
|
||||||
if(frag->iov_idx == 1 && frag->hdr.size) {
|
if(frag->iov_idx == 1 && frag->hdr.size) {
|
||||||
frag->iov[1].iov_base = (void*)(frag+1);
|
frag->iov[1].iov_base = (IOVBASE_TYPE*)(frag+1);
|
||||||
frag->iov[1].iov_len = frag->hdr.size;
|
frag->iov[1].iov_len = frag->hdr.size;
|
||||||
frag->segments[0].seg_addr.pval = frag+1;
|
frag->segments[0].seg_addr.pval = frag+1;
|
||||||
frag->segments[0].seg_len = frag->hdr.size;
|
frag->segments[0].seg_len = frag->hdr.size;
|
||||||
@ -246,13 +246,13 @@ bool mca_btl_tcp_frag_recv(mca_btl_tcp_frag_t* frag, int sd)
|
|||||||
break;
|
break;
|
||||||
case MCA_BTL_TCP_HDR_TYPE_PUT:
|
case MCA_BTL_TCP_HDR_TYPE_PUT:
|
||||||
if(frag->iov_idx == 1) {
|
if(frag->iov_idx == 1) {
|
||||||
frag->iov[1].iov_base = (void*)frag->segments;
|
frag->iov[1].iov_base = (IOVBASE_TYPE*)frag->segments;
|
||||||
frag->iov[1].iov_len = frag->hdr.count * sizeof(mca_btl_base_segment_t);
|
frag->iov[1].iov_len = frag->hdr.count * sizeof(mca_btl_base_segment_t);
|
||||||
frag->iov_cnt++;
|
frag->iov_cnt++;
|
||||||
goto repeat;
|
goto repeat;
|
||||||
} else if (frag->iov_idx == 2) {
|
} else if (frag->iov_idx == 2) {
|
||||||
for(i=0; i<frag->hdr.count; i++) {
|
for(i=0; i<frag->hdr.count; i++) {
|
||||||
frag->iov[i+2].iov_base = frag->segments[i].seg_addr.pval;
|
frag->iov[i+2].iov_base = (IOVBASE_TYPE*)frag->segments[i].seg_addr.pval;
|
||||||
frag->iov[i+2].iov_len = frag->segments[i].seg_len;
|
frag->iov[i+2].iov_len = frag->segments[i].seg_len;
|
||||||
frag->iov_cnt++;
|
frag->iov_cnt++;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -36,7 +36,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_btl_tcp_frag_t);
|
|
||||||
|
|
||||||
#define MCA_BTL_TCP_FRAG_IOVEC_NUMBER 4
|
#define MCA_BTL_TCP_FRAG_IOVEC_NUMBER 4
|
||||||
|
|
||||||
@ -60,7 +59,6 @@ struct mca_btl_tcp_frag_t {
|
|||||||
typedef struct mca_btl_tcp_frag_t mca_btl_tcp_frag_t;
|
typedef struct mca_btl_tcp_frag_t mca_btl_tcp_frag_t;
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_tcp_frag_t);
|
OBJ_CLASS_DECLARATION(mca_btl_tcp_frag_t);
|
||||||
|
|
||||||
|
|
||||||
typedef struct mca_btl_tcp_frag_t mca_btl_tcp_frag_eager_t;
|
typedef struct mca_btl_tcp_frag_t mca_btl_tcp_frag_eager_t;
|
||||||
|
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_tcp_frag_eager_t);
|
OBJ_CLASS_DECLARATION(mca_btl_tcp_frag_eager_t);
|
||||||
@ -114,7 +112,7 @@ do { \
|
|||||||
frag->btl = ep->endpoint_btl; \
|
frag->btl = ep->endpoint_btl; \
|
||||||
frag->endpoint = ep; \
|
frag->endpoint = ep; \
|
||||||
frag->iov[0].iov_len = sizeof(frag->hdr); \
|
frag->iov[0].iov_len = sizeof(frag->hdr); \
|
||||||
frag->iov[0].iov_base = (void*)&frag->hdr; \
|
frag->iov[0].iov_base = (IOVBASE_TYPE*)&frag->hdr; \
|
||||||
frag->iov_cnt = 1; \
|
frag->iov_cnt = 1; \
|
||||||
frag->iov_idx = 0; \
|
frag->iov_idx = 0; \
|
||||||
frag->iov_ptr = frag->iov; \
|
frag->iov_ptr = frag->iov; \
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -29,7 +29,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_tcp_proc_t);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the state of a remote process and the set of addresses
|
* Represents the state of a remote process and the set of addresses
|
||||||
@ -63,6 +62,7 @@ struct mca_btl_tcp_proc_t {
|
|||||||
/**< lock to protect against concurrent access to proc state */
|
/**< lock to protect against concurrent access to proc state */
|
||||||
};
|
};
|
||||||
typedef struct mca_btl_tcp_proc_t mca_btl_tcp_proc_t;
|
typedef struct mca_btl_tcp_proc_t mca_btl_tcp_proc_t;
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_tcp_proc_t);
|
||||||
|
|
||||||
mca_btl_tcp_proc_t* mca_btl_tcp_proc_create(ompi_proc_t* ompi_proc);
|
mca_btl_tcp_proc_t* mca_btl_tcp_proc_create(ompi_proc_t* ompi_proc);
|
||||||
mca_btl_tcp_proc_t* mca_btl_tcp_proc_lookup(const orte_process_name_t* name);
|
mca_btl_tcp_proc_t* mca_btl_tcp_proc_lookup(const orte_process_name_t* name);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -29,8 +29,6 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_template_endpoint_t);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An abstraction that represents a connection to a endpoint process.
|
* An abstraction that represents a connection to a endpoint process.
|
||||||
* An instance of mca_btl_base_endpoint_t is associated w/ each process
|
* An instance of mca_btl_base_endpoint_t is associated w/ each process
|
||||||
@ -50,7 +48,7 @@ struct mca_btl_base_endpoint_t {
|
|||||||
|
|
||||||
typedef struct mca_btl_base_endpoint_t mca_btl_base_endpoint_t;
|
typedef struct mca_btl_base_endpoint_t mca_btl_base_endpoint_t;
|
||||||
typedef mca_btl_base_endpoint_t mca_btl_template_endpoint_t;
|
typedef mca_btl_base_endpoint_t mca_btl_template_endpoint_t;
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_template_endpoint_t);
|
||||||
|
|
||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -27,9 +27,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_btl_template_frag_t);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TEMPLATE send fratemplateent derived type.
|
* TEMPLATE send fratemplateent derived type.
|
||||||
@ -47,7 +44,6 @@ struct mca_btl_template_frag_t {
|
|||||||
typedef struct mca_btl_template_frag_t mca_btl_template_frag_t;
|
typedef struct mca_btl_template_frag_t mca_btl_template_frag_t;
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_template_frag_t);
|
OBJ_CLASS_DECLARATION(mca_btl_template_frag_t);
|
||||||
|
|
||||||
|
|
||||||
typedef struct mca_btl_template_frag_t mca_btl_template_frag_eager_t;
|
typedef struct mca_btl_template_frag_t mca_btl_template_frag_eager_t;
|
||||||
|
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_template_frag_eager_t);
|
OBJ_CLASS_DECLARATION(mca_btl_template_frag_eager_t);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -28,7 +28,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_template_proc_t);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the state of a remote process and the set of addresses
|
* Represents the state of a remote process and the set of addresses
|
||||||
@ -59,6 +58,7 @@ struct mca_btl_template_proc_t {
|
|||||||
/**< lock to protect against concurrent access to proc state */
|
/**< lock to protect against concurrent access to proc state */
|
||||||
};
|
};
|
||||||
typedef struct mca_btl_template_proc_t mca_btl_template_proc_t;
|
typedef struct mca_btl_template_proc_t mca_btl_template_proc_t;
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_template_proc_t);
|
||||||
|
|
||||||
mca_btl_template_proc_t* mca_btl_template_proc_create(ompi_proc_t* ompi_proc);
|
mca_btl_template_proc_t* mca_btl_template_proc_create(ompi_proc_t* ompi_proc);
|
||||||
int mca_btl_template_proc_insert(mca_btl_template_proc_t*, mca_btl_base_endpoint_t*);
|
int mca_btl_template_proc_insert(mca_btl_template_proc_t*, mca_btl_base_endpoint_t*);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -36,8 +36,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_ud_endpoint_t);
|
|
||||||
|
|
||||||
|
|
||||||
struct mca_btl_ud_frag_t;
|
struct mca_btl_ud_frag_t;
|
||||||
|
|
||||||
@ -81,6 +79,7 @@ struct mca_btl_base_endpoint_t {
|
|||||||
|
|
||||||
typedef struct mca_btl_base_endpoint_t mca_btl_base_endpoint_t;
|
typedef struct mca_btl_base_endpoint_t mca_btl_base_endpoint_t;
|
||||||
typedef mca_btl_base_endpoint_t mca_btl_ud_endpoint_t;
|
typedef mca_btl_base_endpoint_t mca_btl_ud_endpoint_t;
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_ud_endpoint_t);
|
||||||
|
|
||||||
inline int mca_btl_ud_endpoint_post_send(struct mca_btl_ud_module_t* ud_btl,
|
inline int mca_btl_ud_endpoint_post_send(struct mca_btl_ud_module_t* ud_btl,
|
||||||
mca_btl_ud_endpoint_t * endpoint,
|
mca_btl_ud_endpoint_t * endpoint,
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -32,7 +32,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_btl_ud_frag_t);
|
|
||||||
|
|
||||||
/* UD adds a 40 byte global routing header */
|
/* UD adds a 40 byte global routing header */
|
||||||
/* This works in strange ways - the sending side does not need to explicitly
|
/* This works in strange ways - the sending side does not need to explicitly
|
||||||
@ -73,7 +72,6 @@ struct mca_btl_ud_frag_t {
|
|||||||
typedef struct mca_btl_ud_frag_t mca_btl_ud_frag_t;
|
typedef struct mca_btl_ud_frag_t mca_btl_ud_frag_t;
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_ud_frag_t);
|
OBJ_CLASS_DECLARATION(mca_btl_ud_frag_t);
|
||||||
|
|
||||||
|
|
||||||
typedef struct mca_btl_ud_frag_t mca_btl_ud_send_frag_eager_t;
|
typedef struct mca_btl_ud_frag_t mca_btl_ud_send_frag_eager_t;
|
||||||
|
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_ud_send_frag_eager_t);
|
OBJ_CLASS_DECLARATION(mca_btl_ud_send_frag_eager_t);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -30,7 +30,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_ud_proc_t);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the state of a remote process and the set of addresses
|
* Represents the state of a remote process and the set of addresses
|
||||||
@ -62,6 +61,7 @@ struct mca_btl_ud_proc_t {
|
|||||||
/**< lock to protect against concurrent access to proc state */
|
/**< lock to protect against concurrent access to proc state */
|
||||||
};
|
};
|
||||||
typedef struct mca_btl_ud_proc_t mca_btl_ud_proc_t;
|
typedef struct mca_btl_ud_proc_t mca_btl_ud_proc_t;
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_ud_proc_t);
|
||||||
|
|
||||||
mca_btl_ud_proc_t* mca_btl_ud_proc_create(ompi_proc_t* ompi_proc);
|
mca_btl_ud_proc_t* mca_btl_ud_proc_create(ompi_proc_t* ompi_proc);
|
||||||
int mca_btl_ud_proc_insert(mca_btl_ud_proc_t*, mca_btl_base_endpoint_t*);
|
int mca_btl_ud_proc_insert(mca_btl_ud_proc_t*, mca_btl_base_endpoint_t*);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -28,8 +28,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_btl_udapl_frag_t);
|
|
||||||
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
MCA_BTL_UDAPL_SEND,
|
MCA_BTL_UDAPL_SEND,
|
||||||
@ -60,7 +58,6 @@ struct mca_btl_udapl_frag_t {
|
|||||||
typedef struct mca_btl_udapl_frag_t mca_btl_udapl_frag_t;
|
typedef struct mca_btl_udapl_frag_t mca_btl_udapl_frag_t;
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_udapl_frag_t);
|
OBJ_CLASS_DECLARATION(mca_btl_udapl_frag_t);
|
||||||
|
|
||||||
|
|
||||||
typedef struct mca_btl_udapl_frag_t mca_btl_udapl_frag_eager_t;
|
typedef struct mca_btl_udapl_frag_t mca_btl_udapl_frag_eager_t;
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_udapl_frag_eager_t);
|
OBJ_CLASS_DECLARATION(mca_btl_udapl_frag_eager_t);
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -28,7 +28,6 @@
|
|||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
OBJ_CLASS_DECLARATION(mca_btl_udapl_proc_t);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the state of a remote process and the set of addresses
|
* Represents the state of a remote process and the set of addresses
|
||||||
@ -62,6 +61,7 @@ struct mca_btl_udapl_proc_t {
|
|||||||
/**< lock to protect against concurrent access to proc state */
|
/**< lock to protect against concurrent access to proc state */
|
||||||
};
|
};
|
||||||
typedef struct mca_btl_udapl_proc_t mca_btl_udapl_proc_t;
|
typedef struct mca_btl_udapl_proc_t mca_btl_udapl_proc_t;
|
||||||
|
OBJ_CLASS_DECLARATION(mca_btl_udapl_proc_t);
|
||||||
|
|
||||||
mca_btl_udapl_proc_t* mca_btl_udapl_proc_create(ompi_proc_t* ompi_proc);
|
mca_btl_udapl_proc_t* mca_btl_udapl_proc_create(ompi_proc_t* ompi_proc);
|
||||||
int mca_btl_udapl_proc_insert(mca_btl_udapl_proc_t*, mca_btl_base_endpoint_t*);
|
int mca_btl_udapl_proc_insert(mca_btl_udapl_proc_t*, mca_btl_base_endpoint_t*);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -29,16 +29,15 @@
|
|||||||
#include "ompi/communicator/communicator.h"
|
#include "ompi/communicator/communicator.h"
|
||||||
|
|
||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C"
|
extern "C" {
|
||||||
{
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Globally exported variables */
|
/* Globally exported variables */
|
||||||
|
|
||||||
OMPI_DECLSPEC extern const mca_coll_base_component_1_0_0_t
|
OMPI_MODULE_DECLSPEC extern const mca_coll_base_component_1_0_0_t
|
||||||
mca_coll_basic_component;
|
mca_coll_basic_component;
|
||||||
OMPI_DECLSPEC extern int mca_coll_basic_priority;
|
extern int mca_coll_basic_priority;
|
||||||
OMPI_DECLSPEC extern int mca_coll_basic_crossover;
|
extern int mca_coll_basic_crossover;
|
||||||
|
|
||||||
/* API functions */
|
/* API functions */
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -56,12 +56,12 @@ mca_coll_basic_allgather_intra(void *sbuf, int scount,
|
|||||||
ompi_ddt_get_extent(rdtype, &lb, &extent);
|
ompi_ddt_get_extent(rdtype, &lb, &extent);
|
||||||
ompi_ddt_get_true_extent(rdtype, &true_lb, &true_extent);
|
ompi_ddt_get_true_extent(rdtype, &true_lb, &true_extent);
|
||||||
|
|
||||||
rbuf_original = rbuf;
|
rbuf_original = (char*)rbuf;
|
||||||
sbuf = ((char*) rbuf) + (ompi_comm_rank(comm) * extent * rcount);
|
sbuf = ((char*) rbuf) + (ompi_comm_rank(comm) * extent * rcount);
|
||||||
sdtype = rdtype;
|
sdtype = rdtype;
|
||||||
scount = rcount;
|
scount = rcount;
|
||||||
|
|
||||||
inplace_temp = malloc((true_extent + (rcount - 1) * extent) *
|
inplace_temp = (char*)malloc((true_extent + (rcount - 1) * extent) *
|
||||||
ompi_comm_size(comm));
|
ompi_comm_size(comm));
|
||||||
if (NULL == inplace_temp) {
|
if (NULL == inplace_temp) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
@ -82,7 +82,7 @@ mca_coll_basic_allgather_intra(void *sbuf, int scount,
|
|||||||
|
|
||||||
if (MPI_SUCCESS == err && NULL != inplace_temp) {
|
if (MPI_SUCCESS == err && NULL != inplace_temp) {
|
||||||
ompi_ddt_copy_content_same_ddt(rdtype, rcount * ompi_comm_size(comm),
|
ompi_ddt_copy_content_same_ddt(rdtype, rcount * ompi_comm_size(comm),
|
||||||
rbuf_original, rbuf);
|
rbuf_original, (char*)rbuf);
|
||||||
free(inplace_temp);
|
free(inplace_temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -54,7 +54,7 @@ mca_coll_basic_allgatherv_intra(void *sbuf, int scount,
|
|||||||
|
|
||||||
if (MPI_IN_PLACE == sbuf) {
|
if (MPI_IN_PLACE == sbuf) {
|
||||||
ompi_ddt_get_extent(rdtype, &lb, &extent);
|
ompi_ddt_get_extent(rdtype, &lb, &extent);
|
||||||
send_buf = rbuf;
|
send_buf = (char*)rbuf;
|
||||||
for (i = 0; i < rank; ++i) {
|
for (i = 0; i < rank; ++i) {
|
||||||
send_buf += (rcounts[i] * extent);
|
send_buf += (rcounts[i] * extent);
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -92,7 +92,7 @@ mca_coll_basic_exscan_intra(void *sbuf, void *rbuf, int count,
|
|||||||
ompi_ddt_get_extent(dtype, &lb, &extent);
|
ompi_ddt_get_extent(dtype, &lb, &extent);
|
||||||
ompi_ddt_get_true_extent(dtype, &true_lb, &true_extent);
|
ompi_ddt_get_true_extent(dtype, &true_lb, &true_extent);
|
||||||
|
|
||||||
free_buffer = malloc(true_extent + (count - 1) * extent);
|
free_buffer = (char*)malloc(true_extent + (count - 1) * extent);
|
||||||
if (NULL == free_buffer) {
|
if (NULL == free_buffer) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
@ -104,14 +104,14 @@ mca_coll_basic_exscan_intra(void *sbuf, void *rbuf, int count,
|
|||||||
* buffer before the receive completes */
|
* buffer before the receive completes */
|
||||||
|
|
||||||
err = ompi_ddt_copy_content_same_ddt(dtype, count,
|
err = ompi_ddt_copy_content_same_ddt(dtype, count,
|
||||||
reduce_buffer, sbuf);
|
reduce_buffer, (char*)sbuf);
|
||||||
if (MPI_SUCCESS != err) {
|
if (MPI_SUCCESS != err) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Now setup the reduction */
|
/* Now setup the reduction */
|
||||||
|
|
||||||
source = rbuf;
|
source = (char*)rbuf;
|
||||||
|
|
||||||
/* Finally, wait for the receive to complete (so that we can do
|
/* Finally, wait for the receive to complete (so that we can do
|
||||||
* the reduction). */
|
* the reduction). */
|
||||||
@ -124,7 +124,7 @@ mca_coll_basic_exscan_intra(void *sbuf, void *rbuf, int count,
|
|||||||
|
|
||||||
/* Setup the reduction */
|
/* Setup the reduction */
|
||||||
|
|
||||||
source = sbuf;
|
source = (char*)sbuf;
|
||||||
|
|
||||||
/* If we're not commutative, we have to wait for the receive to
|
/* If we're not commutative, we have to wait for the receive to
|
||||||
* complete and then copy it into the reduce buffer */
|
* complete and then copy it into the reduce buffer */
|
||||||
@ -135,7 +135,7 @@ mca_coll_basic_exscan_intra(void *sbuf, void *rbuf, int count,
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = ompi_ddt_copy_content_same_ddt(dtype, count,
|
err = ompi_ddt_copy_content_same_ddt(dtype, count,
|
||||||
reduce_buffer, rbuf);
|
reduce_buffer, (char*)rbuf);
|
||||||
if (MPI_SUCCESS != err) {
|
if (MPI_SUCCESS != err) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -182,7 +182,7 @@ mca_coll_basic_module_init(struct ompi_communicator_t *comm)
|
|||||||
} else {
|
} else {
|
||||||
size = ompi_comm_size(comm);
|
size = ompi_comm_size(comm);
|
||||||
}
|
}
|
||||||
data = malloc(sizeof(struct mca_coll_base_comm_t) +
|
data = (struct mca_coll_base_comm_t*)malloc(sizeof(struct mca_coll_base_comm_t) +
|
||||||
(sizeof(ompi_request_t *) * size * 2));
|
(sizeof(ompi_request_t *) * size * 2));
|
||||||
|
|
||||||
if (NULL == data) {
|
if (NULL == data) {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -194,7 +194,7 @@ mca_coll_basic_reduce_lin_intra(void *sbuf, void *rbuf, int count,
|
|||||||
|
|
||||||
if (MPI_IN_PLACE == sbuf) {
|
if (MPI_IN_PLACE == sbuf) {
|
||||||
sbuf = rbuf;
|
sbuf = rbuf;
|
||||||
inplace_temp = malloc(true_extent + (count - 1) * extent);
|
inplace_temp = (char*)malloc(true_extent + (count - 1) * extent);
|
||||||
if (NULL == inplace_temp) {
|
if (NULL == inplace_temp) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
@ -202,7 +202,7 @@ mca_coll_basic_reduce_lin_intra(void *sbuf, void *rbuf, int count,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (size > 1) {
|
if (size > 1) {
|
||||||
free_buffer = malloc(true_extent + (count - 1) * extent);
|
free_buffer = (char*)malloc(true_extent + (count - 1) * extent);
|
||||||
if (NULL == free_buffer) {
|
if (NULL == free_buffer) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
@ -212,7 +212,7 @@ mca_coll_basic_reduce_lin_intra(void *sbuf, void *rbuf, int count,
|
|||||||
/* Initialize the receive buffer. */
|
/* Initialize the receive buffer. */
|
||||||
|
|
||||||
if (rank == (size - 1)) {
|
if (rank == (size - 1)) {
|
||||||
err = ompi_ddt_copy_content_same_ddt(dtype, count, rbuf, sbuf);
|
err = ompi_ddt_copy_content_same_ddt(dtype, count, (char*)rbuf, (char*)sbuf);
|
||||||
} else {
|
} else {
|
||||||
err = MCA_PML_CALL(recv(rbuf, count, dtype, size - 1,
|
err = MCA_PML_CALL(recv(rbuf, count, dtype, size - 1,
|
||||||
MCA_COLL_BASE_TAG_REDUCE, comm,
|
MCA_COLL_BASE_TAG_REDUCE, comm,
|
||||||
@ -229,7 +229,7 @@ mca_coll_basic_reduce_lin_intra(void *sbuf, void *rbuf, int count,
|
|||||||
|
|
||||||
for (i = size - 2; i >= 0; --i) {
|
for (i = size - 2; i >= 0; --i) {
|
||||||
if (rank == i) {
|
if (rank == i) {
|
||||||
inbuf = sbuf;
|
inbuf = (char*)sbuf;
|
||||||
} else {
|
} else {
|
||||||
err = MCA_PML_CALL(recv(pml_buffer, count, dtype, i,
|
err = MCA_PML_CALL(recv(pml_buffer, count, dtype, i,
|
||||||
MCA_COLL_BASE_TAG_REDUCE, comm,
|
MCA_COLL_BASE_TAG_REDUCE, comm,
|
||||||
@ -250,7 +250,7 @@ mca_coll_basic_reduce_lin_intra(void *sbuf, void *rbuf, int count,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (NULL != inplace_temp) {
|
if (NULL != inplace_temp) {
|
||||||
err = ompi_ddt_copy_content_same_ddt(dtype, count, sbuf, inplace_temp);
|
err = ompi_ddt_copy_content_same_ddt(dtype, count, (char*)sbuf, inplace_temp);
|
||||||
free(inplace_temp);
|
free(inplace_temp);
|
||||||
}
|
}
|
||||||
if (NULL != free_buffer) {
|
if (NULL != free_buffer) {
|
||||||
@ -289,7 +289,7 @@ mca_coll_basic_reduce_log_intra(void *sbuf, void *rbuf, int count,
|
|||||||
char *free_rbuf = NULL;
|
char *free_rbuf = NULL;
|
||||||
char *pml_buffer = NULL;
|
char *pml_buffer = NULL;
|
||||||
char *snd_buffer = NULL;
|
char *snd_buffer = NULL;
|
||||||
char *rcv_buffer = rbuf;
|
char *rcv_buffer = (char*)rbuf;
|
||||||
char *inplace_temp = NULL;
|
char *inplace_temp = NULL;
|
||||||
|
|
||||||
/* JMS Codearound for now -- if the operations is not communative,
|
/* JMS Codearound for now -- if the operations is not communative,
|
||||||
@ -316,7 +316,7 @@ mca_coll_basic_reduce_log_intra(void *sbuf, void *rbuf, int count,
|
|||||||
ompi_ddt_get_extent(dtype, &lb, &extent);
|
ompi_ddt_get_extent(dtype, &lb, &extent);
|
||||||
ompi_ddt_get_true_extent(dtype, &true_lb, &true_extent);
|
ompi_ddt_get_true_extent(dtype, &true_lb, &true_extent);
|
||||||
|
|
||||||
free_buffer = malloc(true_extent + (count - 1) * extent);
|
free_buffer = (char*)malloc(true_extent + (count - 1) * extent);
|
||||||
if (NULL == free_buffer) {
|
if (NULL == free_buffer) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
@ -332,20 +332,20 @@ mca_coll_basic_reduce_log_intra(void *sbuf, void *rbuf, int count,
|
|||||||
* rationale above. */
|
* rationale above. */
|
||||||
|
|
||||||
if (MPI_IN_PLACE == sbuf) {
|
if (MPI_IN_PLACE == sbuf) {
|
||||||
inplace_temp = malloc(true_extent + (count - 1) * extent);
|
inplace_temp = (char*)malloc(true_extent + (count - 1) * extent);
|
||||||
if (NULL == inplace_temp) {
|
if (NULL == inplace_temp) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
sbuf = inplace_temp - lb;
|
sbuf = inplace_temp - lb;
|
||||||
err = ompi_ddt_copy_content_same_ddt(dtype, count, sbuf, rbuf);
|
err = ompi_ddt_copy_content_same_ddt(dtype, count, (char*)sbuf, (char*)rbuf);
|
||||||
}
|
}
|
||||||
snd_buffer = sbuf;
|
snd_buffer = (char*)sbuf;
|
||||||
|
|
||||||
if (rank != root && 0 == (vrank & 1)) {
|
if (rank != root && 0 == (vrank & 1)) {
|
||||||
/* root is the only one required to provide a valid rbuf.
|
/* root is the only one required to provide a valid rbuf.
|
||||||
* Assume rbuf is invalid for all other ranks, so fix it up
|
* Assume rbuf is invalid for all other ranks, so fix it up
|
||||||
* here to be valid on all non-leaf ranks */
|
* here to be valid on all non-leaf ranks */
|
||||||
free_rbuf = malloc(true_extent + (count - 1) * extent);
|
free_rbuf = (char*)malloc(true_extent + (count - 1) * extent);
|
||||||
if (NULL == free_rbuf) {
|
if (NULL == free_rbuf) {
|
||||||
free(free_buffer);
|
free(free_buffer);
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
@ -377,7 +377,7 @@ mca_coll_basic_reduce_log_intra(void *sbuf, void *rbuf, int count,
|
|||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
snd_buffer = rbuf;
|
snd_buffer = (char*)rbuf;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -428,7 +428,7 @@ mca_coll_basic_reduce_log_intra(void *sbuf, void *rbuf, int count,
|
|||||||
* what we just received against it. */
|
* what we just received against it. */
|
||||||
if (!ompi_op_is_commute(op)) {
|
if (!ompi_op_is_commute(op)) {
|
||||||
ompi_ddt_copy_content_same_ddt(dtype, count, pml_buffer,
|
ompi_ddt_copy_content_same_ddt(dtype, count, pml_buffer,
|
||||||
sbuf);
|
(char*)sbuf);
|
||||||
ompi_op_reduce(op, rbuf, pml_buffer, count, dtype);
|
ompi_op_reduce(op, rbuf, pml_buffer, count, dtype);
|
||||||
} else {
|
} else {
|
||||||
ompi_op_reduce(op, sbuf, pml_buffer, count, dtype);
|
ompi_op_reduce(op, sbuf, pml_buffer, count, dtype);
|
||||||
@ -437,7 +437,7 @@ mca_coll_basic_reduce_log_intra(void *sbuf, void *rbuf, int count,
|
|||||||
snd_buffer = pml_buffer;
|
snd_buffer = pml_buffer;
|
||||||
/* starting from now we always receive in the user
|
/* starting from now we always receive in the user
|
||||||
* provided buffer */
|
* provided buffer */
|
||||||
rcv_buffer = rbuf;
|
rcv_buffer = (char*)rbuf;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -446,7 +446,7 @@ mca_coll_basic_reduce_log_intra(void *sbuf, void *rbuf, int count,
|
|||||||
err = MPI_SUCCESS;
|
err = MPI_SUCCESS;
|
||||||
if (0 == vrank) {
|
if (0 == vrank) {
|
||||||
if (root == rank) {
|
if (root == rank) {
|
||||||
ompi_ddt_copy_content_same_ddt(dtype, count, rbuf, snd_buffer);
|
ompi_ddt_copy_content_same_ddt(dtype, count, (char*)rbuf, snd_buffer);
|
||||||
} else {
|
} else {
|
||||||
err = MCA_PML_CALL(send(snd_buffer, count,
|
err = MCA_PML_CALL(send(snd_buffer, count,
|
||||||
dtype, root, MCA_COLL_BASE_TAG_REDUCE,
|
dtype, root, MCA_COLL_BASE_TAG_REDUCE,
|
||||||
@ -515,7 +515,7 @@ mca_coll_basic_reduce_lin_inter(void *sbuf, void *rbuf, int count,
|
|||||||
ompi_ddt_get_extent(dtype, &lb, &extent);
|
ompi_ddt_get_extent(dtype, &lb, &extent);
|
||||||
ompi_ddt_get_true_extent(dtype, &true_lb, &true_extent);
|
ompi_ddt_get_true_extent(dtype, &true_lb, &true_extent);
|
||||||
|
|
||||||
free_buffer = malloc(true_extent + (count - 1) * extent);
|
free_buffer = (char*)malloc(true_extent + (count - 1) * extent);
|
||||||
if (NULL == free_buffer) {
|
if (NULL == free_buffer) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -68,7 +68,7 @@ mca_coll_basic_reduce_scatter_intra(void *sbuf, void *rbuf, int *rcounts,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (0 == rank) {
|
if (0 == rank) {
|
||||||
disps = malloc((unsigned) size * sizeof(int));
|
disps = (int*)malloc((unsigned) size * sizeof(int));
|
||||||
if (NULL == disps) {
|
if (NULL == disps) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
@ -79,7 +79,7 @@ mca_coll_basic_reduce_scatter_intra(void *sbuf, void *rbuf, int *rcounts,
|
|||||||
ompi_ddt_get_extent(dtype, &lb, &extent);
|
ompi_ddt_get_extent(dtype, &lb, &extent);
|
||||||
ompi_ddt_get_true_extent(dtype, &true_lb, &true_extent);
|
ompi_ddt_get_true_extent(dtype, &true_lb, &true_extent);
|
||||||
|
|
||||||
free_buffer = malloc(true_extent + (count - 1) * extent);
|
free_buffer = (char*)malloc(true_extent + (count - 1) * extent);
|
||||||
if (NULL == free_buffer) {
|
if (NULL == free_buffer) {
|
||||||
free(disps);
|
free(disps);
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -58,7 +58,7 @@ mca_coll_basic_scan_intra(void *sbuf, void *rbuf, int count,
|
|||||||
|
|
||||||
if (0 == rank) {
|
if (0 == rank) {
|
||||||
if (MPI_IN_PLACE != sbuf) {
|
if (MPI_IN_PLACE != sbuf) {
|
||||||
err = ompi_ddt_copy_content_same_ddt(dtype, count, rbuf, sbuf);
|
err = ompi_ddt_copy_content_same_ddt(dtype, count, (char*)rbuf, (char*)sbuf);
|
||||||
if (MPI_SUCCESS != err) {
|
if (MPI_SUCCESS != err) {
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -75,7 +75,7 @@ mca_coll_basic_scan_intra(void *sbuf, void *rbuf, int count,
|
|||||||
ompi_ddt_get_extent(dtype, &lb, &extent);
|
ompi_ddt_get_extent(dtype, &lb, &extent);
|
||||||
ompi_ddt_get_true_extent(dtype, &true_lb, &true_extent);
|
ompi_ddt_get_true_extent(dtype, &true_lb, &true_extent);
|
||||||
|
|
||||||
free_buffer = malloc(true_extent + (count - 1) * extent);
|
free_buffer = (char*)malloc(true_extent + (count - 1) * extent);
|
||||||
if (NULL == free_buffer) {
|
if (NULL == free_buffer) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
@ -84,7 +84,7 @@ mca_coll_basic_scan_intra(void *sbuf, void *rbuf, int count,
|
|||||||
/* Copy the send buffer into the receive buffer. */
|
/* Copy the send buffer into the receive buffer. */
|
||||||
|
|
||||||
if (MPI_IN_PLACE != sbuf) {
|
if (MPI_IN_PLACE != sbuf) {
|
||||||
err = ompi_ddt_copy_content_same_ddt(dtype, count, rbuf, sbuf);
|
err = ompi_ddt_copy_content_same_ddt(dtype, count, (char*)rbuf, (char*)sbuf);
|
||||||
if (MPI_SUCCESS != err) {
|
if (MPI_SUCCESS != err) {
|
||||||
if (NULL != free_buffer) {
|
if (NULL != free_buffer) {
|
||||||
free(free_buffer);
|
free(free_buffer);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -177,7 +177,7 @@ mca_coll_hierarch_comm_query(struct ompi_communicator_t *comm, int *priority,
|
|||||||
rank = ompi_comm_rank(comm);
|
rank = ompi_comm_rank(comm);
|
||||||
|
|
||||||
/* allocate the data structure holding all information */
|
/* allocate the data structure holding all information */
|
||||||
tdata = calloc ( 1, sizeof(struct mca_coll_base_comm_t));
|
tdata = (struct mca_coll_base_comm_t*)calloc ( 1, sizeof(struct mca_coll_base_comm_t));
|
||||||
if ( NULL == tdata ) {
|
if ( NULL == tdata ) {
|
||||||
*priority = 0;
|
*priority = 0;
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -755,7 +755,7 @@ static void mca_coll_hierarch_dump_struct ( struct mca_coll_base_comm_t *c)
|
|||||||
c->hier_num_lleaders );
|
c->hier_num_lleaders );
|
||||||
|
|
||||||
for ( i=0; i < ompi_pointer_array_get_size(&(c->hier_llead)); i++ ) {
|
for ( i=0; i < ompi_pointer_array_get_size(&(c->hier_llead)); i++ ) {
|
||||||
current = ompi_pointer_array_get_item (&(c->hier_llead), i);
|
current = (mca_coll_hierarch_llead_t*)ompi_pointer_array_get_item (&(c->hier_llead), i);
|
||||||
if ( current == NULL ) {
|
if ( current == NULL ) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -66,7 +66,7 @@ int mca_coll_hierarch_allreduce_intra(void *sbuf, void *rbuf, int count,
|
|||||||
ompi_ddt_get_extent(dtype, &lb, &extent);
|
ompi_ddt_get_extent(dtype, &lb, &extent);
|
||||||
ompi_ddt_get_true_extent(dtype, &true_lb, &true_extent);
|
ompi_ddt_get_true_extent(dtype, &true_lb, &true_extent);
|
||||||
|
|
||||||
tbuf = malloc(true_extent + (count - 1) * extent);
|
tbuf = (char*)malloc(true_extent + (count - 1) * extent);
|
||||||
if (NULL == tbuf) {
|
if (NULL == tbuf) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -65,7 +65,7 @@ int mca_coll_hierarch_reduce_intra(void *sbuf, void *rbuf, int count,
|
|||||||
ompi_ddt_get_extent(dtype, &lb, &extent);
|
ompi_ddt_get_extent(dtype, &lb, &extent);
|
||||||
ompi_ddt_get_true_extent(dtype, &true_lb, &true_extent);
|
ompi_ddt_get_true_extent(dtype, &true_lb, &true_extent);
|
||||||
|
|
||||||
tbuf = malloc(true_extent + (count - 1) * extent);
|
tbuf = (char*)malloc(true_extent + (count - 1) * extent);
|
||||||
if (NULL == tbuf) {
|
if (NULL == tbuf) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -127,12 +127,12 @@ int mca_coll_hierarch_reduce_tmp(void *sbuf, void *rbuf, int count,
|
|||||||
size = ompi_comm_size(comm);
|
size = ompi_comm_size(comm);
|
||||||
|
|
||||||
ompi_ddt_get_extent(dtype, &lb, &extent);
|
ompi_ddt_get_extent(dtype, &lb, &extent);
|
||||||
pml_buffer = malloc(count * extent);
|
pml_buffer = (char*)malloc(count * extent);
|
||||||
if (NULL == pml_buffer) {
|
if (NULL == pml_buffer) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = ompi_ddt_copy_content_same_ddt(dtype, count, rbuf, sbuf);
|
err = ompi_ddt_copy_content_same_ddt(dtype, count, (char*)rbuf, (char*)sbuf);
|
||||||
if (MPI_SUCCESS != err) {
|
if (MPI_SUCCESS != err) {
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -38,6 +38,6 @@ int mca_coll_self_allreduce_intra(void *sbuf, void *rbuf, int count,
|
|||||||
if (MPI_IN_PLACE == sbuf) {
|
if (MPI_IN_PLACE == sbuf) {
|
||||||
return MPI_SUCCESS;
|
return MPI_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
return ompi_ddt_copy_content_same_ddt(dtype, count, rbuf, sbuf);
|
return ompi_ddt_copy_content_same_ddt(dtype, count, (char*)rbuf, (char*)sbuf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,6 +38,6 @@ int mca_coll_self_reduce_intra(void *sbuf, void *rbuf, int count,
|
|||||||
if (MPI_IN_PLACE == sbuf) {
|
if (MPI_IN_PLACE == sbuf) {
|
||||||
return MPI_SUCCESS;
|
return MPI_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
return ompi_ddt_copy_content_same_ddt(dtype, count, rbuf, sbuf);
|
return ompi_ddt_copy_content_same_ddt(dtype, count, (char*)rbuf, (char*)sbuf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -38,6 +38,6 @@ int mca_coll_self_reduce_scatter_intra(void *sbuf, void *rbuf, int *rcounts,
|
|||||||
if (MPI_IN_PLACE == sbuf) {
|
if (MPI_IN_PLACE == sbuf) {
|
||||||
return MPI_SUCCESS;
|
return MPI_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
return ompi_ddt_copy_content_same_ddt(dtype, rcounts[0], rbuf, sbuf);
|
return ompi_ddt_copy_content_same_ddt(dtype, rcounts[0], (char*)rbuf, (char*)sbuf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -38,6 +38,6 @@ int mca_coll_self_scan_intra(void *sbuf, void *rbuf, int count,
|
|||||||
if (MPI_IN_PLACE == sbuf) {
|
if (MPI_IN_PLACE == sbuf) {
|
||||||
return MPI_SUCCESS;
|
return MPI_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
return ompi_ddt_copy_content_same_ddt(dtype, count, rbuf, sbuf);
|
return ompi_ddt_copy_content_same_ddt(dtype, count, (char*)rbuf, (char*)sbuf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -43,7 +43,7 @@
|
|||||||
# include <sched.h>
|
# include <sched.h>
|
||||||
# define SPIN sched_yield()
|
# define SPIN sched_yield()
|
||||||
#elif defined(__WINDOWS__)
|
#elif defined(__WINDOWS__)
|
||||||
# define SPIN /*SwitchToThread() - Not until I figure out which library define it */
|
# define SPIN SwitchToThread()
|
||||||
#else /* no switch available */
|
#else /* no switch available */
|
||||||
# define SPIN
|
# define SPIN
|
||||||
#endif
|
#endif
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -42,6 +42,7 @@
|
|||||||
#include "mpi.h"
|
#include "mpi.h"
|
||||||
#include "opal/mca/maffinity/maffinity.h"
|
#include "opal/mca/maffinity/maffinity.h"
|
||||||
#include "opal/mca/maffinity/base/base.h"
|
#include "opal/mca/maffinity/base/base.h"
|
||||||
|
#include "opal/util/os_path.h"
|
||||||
#include "orte/mca/ns/ns.h"
|
#include "orte/mca/ns/ns.h"
|
||||||
#include "ompi/communicator/communicator.h"
|
#include "ompi/communicator/communicator.h"
|
||||||
#include "ompi/mca/coll/coll.h"
|
#include "ompi/mca/coll/coll.h"
|
||||||
@ -270,7 +271,7 @@ sm_module_init(struct ompi_communicator_t *comm)
|
|||||||
/* Get some space to setup memory affinity (just easier to try to
|
/* Get some space to setup memory affinity (just easier to try to
|
||||||
alloc here to handle the error case) */
|
alloc here to handle the error case) */
|
||||||
|
|
||||||
maffinity = malloc(sizeof(opal_maffinity_base_segment_t) *
|
maffinity = (opal_maffinity_base_segment_t*)malloc(sizeof(opal_maffinity_base_segment_t) *
|
||||||
c->sm_comm_num_segments * 3);
|
c->sm_comm_num_segments * 3);
|
||||||
if (NULL == maffinity) {
|
if (NULL == maffinity) {
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -289,7 +290,7 @@ sm_module_init(struct ompi_communicator_t *comm)
|
|||||||
mca_coll_sm_tree_node_t
|
mca_coll_sm_tree_node_t
|
||||||
*/
|
*/
|
||||||
|
|
||||||
comm->c_coll_selected_data = data =
|
comm->c_coll_selected_data = data = (mca_coll_base_comm_t*)
|
||||||
malloc(sizeof(mca_coll_base_comm_t) +
|
malloc(sizeof(mca_coll_base_comm_t) +
|
||||||
(c->sm_comm_num_segments *
|
(c->sm_comm_num_segments *
|
||||||
sizeof(mca_coll_base_mpool_index_t)) +
|
sizeof(mca_coll_base_mpool_index_t)) +
|
||||||
@ -541,8 +542,8 @@ static int bootstrap_init(void)
|
|||||||
return OMPI_ERROR;
|
return OMPI_ERROR;
|
||||||
}
|
}
|
||||||
orte_proc_info();
|
orte_proc_info();
|
||||||
asprintf(&fullpath, "%s/%s", orte_process_info.job_session_dir,
|
fullpath = opal_os_path( false, orte_process_info.job_session_dir,
|
||||||
mca_coll_sm_component.sm_bootstrap_filename);
|
mca_coll_sm_component.sm_bootstrap_filename, NULL );
|
||||||
if (NULL == fullpath) {
|
if (NULL == fullpath) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
@ -686,7 +687,7 @@ static int bootstrap_comm(ompi_communicator_t *comm)
|
|||||||
(num_segments * (comm_size * frag_size));
|
(num_segments * (comm_size * frag_size));
|
||||||
|
|
||||||
data->mcb_data_mpool_malloc_addr = tmp =
|
data->mcb_data_mpool_malloc_addr = tmp =
|
||||||
c->sm_data_mpool->mpool_alloc(c->sm_data_mpool, size,
|
(char*)c->sm_data_mpool->mpool_alloc(c->sm_data_mpool, size,
|
||||||
c->sm_control_size, 0, NULL);
|
c->sm_control_size, 0, NULL);
|
||||||
if (NULL == tmp) {
|
if (NULL == tmp) {
|
||||||
/* Cleanup before returning; allow other processes in
|
/* Cleanup before returning; allow other processes in
|
||||||
@ -738,7 +739,7 @@ static int bootstrap_comm(ompi_communicator_t *comm)
|
|||||||
|
|
||||||
else {
|
else {
|
||||||
err = OMPI_SUCCESS;
|
err = OMPI_SUCCESS;
|
||||||
data->mcb_mpool_base = c->sm_data_mpool->mpool_base(c->sm_data_mpool);
|
data->mcb_mpool_base = (unsigned char*)c->sm_data_mpool->mpool_base(c->sm_data_mpool);
|
||||||
data->mcb_mpool_offset = bscs[i].smbcs_data_mpool_offset;
|
data->mcb_mpool_offset = bscs[i].smbcs_data_mpool_offset;
|
||||||
data->mcb_mpool_area = data->mcb_mpool_base + data->mcb_mpool_offset;
|
data->mcb_mpool_area = data->mcb_mpool_base + data->mcb_mpool_offset;
|
||||||
data->mcb_operation_count = 0;
|
data->mcb_operation_count = 0;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -185,7 +185,7 @@ static int reduce_inorder(void *sbuf, void* rbuf, int count,
|
|||||||
long true_lb, true_extent, lb, extent;
|
long true_lb, true_extent, lb, extent;
|
||||||
char *inplace_temp;
|
char *inplace_temp;
|
||||||
int peer;
|
int peer;
|
||||||
int count_left = count;
|
size_t count_left = (size_t)count;
|
||||||
int frag_num = 0;
|
int frag_num = 0;
|
||||||
bool first_operation = true;
|
bool first_operation = true;
|
||||||
|
|
||||||
@ -211,7 +211,7 @@ static int reduce_inorder(void *sbuf, void* rbuf, int count,
|
|||||||
"segment_ddt_count" instances (i.e., the number of
|
"segment_ddt_count" instances (i.e., the number of
|
||||||
instances that can be held in a single fragment) */
|
instances that can be held in a single fragment) */
|
||||||
|
|
||||||
free_buffer = malloc(true_extent +
|
free_buffer = (char*)malloc(true_extent +
|
||||||
(segment_ddt_count - 1) * extent);
|
(segment_ddt_count - 1) * extent);
|
||||||
if (NULL == free_buffer) {
|
if (NULL == free_buffer) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
@ -241,7 +241,7 @@ static int reduce_inorder(void *sbuf, void* rbuf, int count,
|
|||||||
sbuf */
|
sbuf */
|
||||||
|
|
||||||
if (MPI_IN_PLACE == sbuf && 0 != rank) {
|
if (MPI_IN_PLACE == sbuf && 0 != rank) {
|
||||||
inplace_temp = malloc(true_extent + (count - 1) * extent);
|
inplace_temp = (char*)malloc(true_extent + (count - 1) * extent);
|
||||||
if (NULL == inplace_temp) {
|
if (NULL == inplace_temp) {
|
||||||
if (NULL != free_buffer) {
|
if (NULL != free_buffer) {
|
||||||
free(free_buffer);
|
free(free_buffer);
|
||||||
@ -288,7 +288,7 @@ static int reduce_inorder(void *sbuf, void* rbuf, int count,
|
|||||||
if (MPI_IN_PLACE != sbuf) {
|
if (MPI_IN_PLACE != sbuf) {
|
||||||
ompi_ddt_copy_content_same_ddt(dtype,
|
ompi_ddt_copy_content_same_ddt(dtype,
|
||||||
count,
|
count,
|
||||||
reduce_target, sbuf);
|
reduce_target, (char*)sbuf);
|
||||||
D(("root copied entire buffer to rbuf (contig ddt, count %d) FIRST OPERATION\n", count));
|
D(("root copied entire buffer to rbuf (contig ddt, count %d) FIRST OPERATION\n", count));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -333,7 +333,7 @@ static int reduce_inorder(void *sbuf, void* rbuf, int count,
|
|||||||
/* Otherwise, I'm not the first process, so
|
/* Otherwise, I'm not the first process, so
|
||||||
instead of copying, combine in the next
|
instead of copying, combine in the next
|
||||||
fragment */
|
fragment */
|
||||||
D(("root combiningn fragment from shmem (contig ddt): count %d (left %d, seg %d)\n", min(count_left, segment_ddt_count), count_left, segment_ddt_count));
|
D(("root combining fragment from shmem (contig ddt): count %d (left %d, seg %d)\n", min(count_left, segment_ddt_count), count_left, segment_ddt_count));
|
||||||
ompi_op_reduce(op,
|
ompi_op_reduce(op,
|
||||||
((char *) sbuf) +
|
((char *) sbuf) +
|
||||||
frag_num * segment_ddt_bytes,
|
frag_num * segment_ddt_bytes,
|
||||||
|
@ -63,12 +63,6 @@ EXSCAN, GATHER, GATHERV, REDUCE, REDUCESCATTER, SCAN, SCATTER, SCATTERV, COLLCOU
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* Globally exported variable
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* OMPI_DECLSPEC extern const mca_coll_base_component_1_0_0_t mca_coll_tuned_component; */
|
|
||||||
|
|
||||||
/* these are the same across all modules and are loaded at component query time */
|
/* these are the same across all modules and are loaded at component query time */
|
||||||
OMPI_DECLSPEC extern int ompi_coll_tuned_stream;
|
OMPI_DECLSPEC extern int ompi_coll_tuned_stream;
|
||||||
OMPI_DECLSPEC extern int ompi_coll_tuned_priority;
|
OMPI_DECLSPEC extern int ompi_coll_tuned_priority;
|
||||||
@ -84,13 +78,10 @@ OMPI_DECLSPEC extern coll_tuned_force_algorithm_mca_param_indices_t ompi_coll_tu
|
|||||||
/* the actual max algorithm values (readonly), loaded at component open */
|
/* the actual max algorithm values (readonly), loaded at component open */
|
||||||
OMPI_DECLSPEC extern int ompi_coll_tuned_forced_max_algorithms[COLLCOUNT];
|
OMPI_DECLSPEC extern int ompi_coll_tuned_forced_max_algorithms[COLLCOUNT];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* coll API functions
|
* coll API functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/* API functions */
|
/* API functions */
|
||||||
|
|
||||||
int ompi_coll_tuned_init_query(bool enable_progress_threads,
|
int ompi_coll_tuned_init_query(bool enable_progress_threads,
|
||||||
@ -281,12 +272,6 @@ struct mca_coll_tuned_component_t {
|
|||||||
*/
|
*/
|
||||||
extern mca_coll_tuned_component_t mca_coll_tuned_component;
|
extern mca_coll_tuned_component_t mca_coll_tuned_component;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Data structure for hanging data off the communicator
|
* Data structure for hanging data off the communicator
|
||||||
* i.e. per module instance
|
* i.e. per module instance
|
||||||
|
@ -335,7 +335,7 @@ ompi_coll_tuned_module_init(struct ompi_communicator_t *comm)
|
|||||||
|
|
||||||
|
|
||||||
if (size<=ompi_coll_tuned_preallocate_memory_comm_size_limit) {
|
if (size<=ompi_coll_tuned_preallocate_memory_comm_size_limit) {
|
||||||
data = malloc(sizeof(struct mca_coll_base_comm_t) +
|
data = (mca_coll_base_comm_t*)malloc(sizeof(struct mca_coll_base_comm_t) +
|
||||||
(sizeof(ompi_request_t *) * size * 2));
|
(sizeof(ompi_request_t *) * size * 2));
|
||||||
|
|
||||||
if (NULL == data) {
|
if (NULL == data) {
|
||||||
@ -345,7 +345,7 @@ ompi_coll_tuned_module_init(struct ompi_communicator_t *comm)
|
|||||||
data->mcct_num_reqs = size * 2;
|
data->mcct_num_reqs = size * 2;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
data = malloc(sizeof(struct mca_coll_base_comm_t));
|
data = (mca_coll_base_comm_t*)malloc(sizeof(struct mca_coll_base_comm_t));
|
||||||
|
|
||||||
if (NULL == data) {
|
if (NULL == data) {
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -113,7 +113,7 @@ int ompi_coll_tuned_reduce_intra_chain( void *sendbuf, void *recvbuf, int count,
|
|||||||
/* handle special case when size == 1 */
|
/* handle special case when size == 1 */
|
||||||
if (1 == size ) {
|
if (1 == size ) {
|
||||||
if (sendbuf != MPI_IN_PLACE) {
|
if (sendbuf != MPI_IN_PLACE) {
|
||||||
ompi_ddt_copy_content_same_ddt( datatype, count, recvbuf, sendbuf );
|
ompi_ddt_copy_content_same_ddt( datatype, count, (char*)recvbuf, (char*)sendbuf );
|
||||||
}
|
}
|
||||||
return MPI_SUCCESS;
|
return MPI_SUCCESS;
|
||||||
}
|
}
|
||||||
@ -368,7 +368,7 @@ ompi_coll_tuned_reduce_intra_basic_linear(void *sbuf, void *rbuf, int count,
|
|||||||
|
|
||||||
if (MPI_IN_PLACE == sbuf) {
|
if (MPI_IN_PLACE == sbuf) {
|
||||||
sbuf = rbuf;
|
sbuf = rbuf;
|
||||||
inplace_temp = malloc(true_extent + (count - 1) * extent);
|
inplace_temp = (char*)malloc(true_extent + (count - 1) * extent);
|
||||||
if (NULL == inplace_temp) {
|
if (NULL == inplace_temp) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
@ -376,7 +376,7 @@ ompi_coll_tuned_reduce_intra_basic_linear(void *sbuf, void *rbuf, int count,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (size > 1) {
|
if (size > 1) {
|
||||||
free_buffer = malloc(true_extent + (count - 1) * extent);
|
free_buffer = (char*)malloc(true_extent + (count - 1) * extent);
|
||||||
if (NULL == free_buffer) {
|
if (NULL == free_buffer) {
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
@ -386,7 +386,7 @@ ompi_coll_tuned_reduce_intra_basic_linear(void *sbuf, void *rbuf, int count,
|
|||||||
/* Initialize the receive buffer. */
|
/* Initialize the receive buffer. */
|
||||||
|
|
||||||
if (rank == (size - 1)) {
|
if (rank == (size - 1)) {
|
||||||
err = ompi_ddt_copy_content_same_ddt(dtype, count, rbuf, sbuf);
|
err = ompi_ddt_copy_content_same_ddt(dtype, count, (char*)rbuf, (char*)sbuf);
|
||||||
} else {
|
} else {
|
||||||
err = MCA_PML_CALL(recv(rbuf, count, dtype, size - 1,
|
err = MCA_PML_CALL(recv(rbuf, count, dtype, size - 1,
|
||||||
MCA_COLL_BASE_TAG_REDUCE, comm,
|
MCA_COLL_BASE_TAG_REDUCE, comm,
|
||||||
@ -403,7 +403,7 @@ ompi_coll_tuned_reduce_intra_basic_linear(void *sbuf, void *rbuf, int count,
|
|||||||
|
|
||||||
for (i = size - 2; i >= 0; --i) {
|
for (i = size - 2; i >= 0; --i) {
|
||||||
if (rank == i) {
|
if (rank == i) {
|
||||||
inbuf = sbuf;
|
inbuf = (char*)sbuf;
|
||||||
} else {
|
} else {
|
||||||
err = MCA_PML_CALL(recv(pml_buffer, count, dtype, i,
|
err = MCA_PML_CALL(recv(pml_buffer, count, dtype, i,
|
||||||
MCA_COLL_BASE_TAG_REDUCE, comm,
|
MCA_COLL_BASE_TAG_REDUCE, comm,
|
||||||
@ -424,7 +424,7 @@ ompi_coll_tuned_reduce_intra_basic_linear(void *sbuf, void *rbuf, int count,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (NULL != inplace_temp) {
|
if (NULL != inplace_temp) {
|
||||||
err = ompi_ddt_copy_content_same_ddt(dtype, count, sbuf, inplace_temp);
|
err = ompi_ddt_copy_content_same_ddt(dtype, count, (char*)sbuf, inplace_temp);
|
||||||
free(inplace_temp);
|
free(inplace_temp);
|
||||||
}
|
}
|
||||||
if (NULL != free_buffer) {
|
if (NULL != free_buffer) {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||||
* University Research and Technology
|
* University Research and Technology
|
||||||
* Corporation. All rights reserved.
|
* Corporation. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
* Copyright (c) 2004-2006 The University of Tennessee and The University
|
||||||
* of Tennessee Research Foundation. All rights
|
* of Tennessee Research Foundation. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||||
@ -18,8 +18,6 @@
|
|||||||
|
|
||||||
#include "ompi_config.h"
|
#include "ompi_config.h"
|
||||||
|
|
||||||
#include "opal/class/opal_list.h"
|
|
||||||
#include "opal/threads/mutex.h"
|
|
||||||
#include "opal/mca/base/base.h"
|
#include "opal/mca/base/base.h"
|
||||||
#include "ompi/mca/io/io.h"
|
#include "ompi/mca/io/io.h"
|
||||||
#include "ompi/mca/io/base/base.h"
|
#include "ompi/mca/io/base/base.h"
|
||||||
@ -60,7 +58,7 @@ int mca_io_base_component_init(void)
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add a comoponent to the io framework's currently-in-use list, or
|
* Add a component to the io framework's currently-in-use list, or
|
||||||
* increase its refcount if it's already in the list.
|
* increase its refcount if it's already in the list.
|
||||||
*/
|
*/
|
||||||
int mca_io_base_component_add(mca_io_base_components_t *comp)
|
int mca_io_base_component_add(mca_io_base_components_t *comp)
|
||||||
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
x
Ссылка в новой задаче
Block a user