Merge pull request #7236 from mcoil1/pr/v4.0.x/several-fixes
v4.0.x/several fixes
Этот коммит содержится в:
Коммит
c0b27e4f74
@ -405,7 +405,7 @@ int ompi_dpm_connect_accept(ompi_communicator_t *comm, int root,
|
|||||||
}
|
}
|
||||||
if (0 < opal_list_get_size(&ilist)) {
|
if (0 < opal_list_get_size(&ilist)) {
|
||||||
uint32_t *peer_ranks = NULL;
|
uint32_t *peer_ranks = NULL;
|
||||||
int prn, nprn;
|
int prn, nprn = 0;
|
||||||
char *val, *mycpuset;
|
char *val, *mycpuset;
|
||||||
uint16_t u16;
|
uint16_t u16;
|
||||||
opal_process_name_t wildcard_rank;
|
opal_process_name_t wildcard_rank;
|
||||||
|
@ -70,7 +70,7 @@ static int nbc_alltoall_init(const void* sendbuf, int sendcount, MPI_Datatype se
|
|||||||
enum {NBC_A2A_LINEAR, NBC_A2A_PAIRWISE, NBC_A2A_DISS, NBC_A2A_INPLACE} alg;
|
enum {NBC_A2A_LINEAR, NBC_A2A_PAIRWISE, NBC_A2A_DISS, NBC_A2A_INPLACE} alg;
|
||||||
void *tmpbuf = NULL;
|
void *tmpbuf = NULL;
|
||||||
ompi_coll_libnbc_module_t *libnbc_module = (ompi_coll_libnbc_module_t*) module;
|
ompi_coll_libnbc_module_t *libnbc_module = (ompi_coll_libnbc_module_t*) module;
|
||||||
ptrdiff_t span, gap;
|
ptrdiff_t span, gap = 0;
|
||||||
|
|
||||||
NBC_IN_PLACE(sendbuf, recvbuf, inplace);
|
NBC_IN_PLACE(sendbuf, recvbuf, inplace);
|
||||||
|
|
||||||
|
@ -826,17 +826,17 @@ static void ADIOI_R_Exchange_data(ADIO_File fd, void *buf, ADIOI_Flatlist_node
|
|||||||
if (recv_size[i]) recv_buf[i] =
|
if (recv_size[i]) recv_buf[i] =
|
||||||
(char *) ADIOI_Malloc(recv_size[i]);
|
(char *) ADIOI_Malloc(recv_size[i]);
|
||||||
|
|
||||||
j = 0;
|
j = 0;
|
||||||
for (i=0; i < nprocs; i++)
|
for (i=0; i < nprocs; i++)
|
||||||
if (recv_size[i]) {
|
if (recv_size[i]) {
|
||||||
MPI_Irecv(recv_buf[i], recv_size[i], MPI_BYTE, i,
|
MPI_Irecv(recv_buf[i], recv_size[i], MPI_BYTE, i,
|
||||||
myrank+i+100*iter, fd->comm, requests+j);
|
myrank+i+100*iter, fd->comm, requests+j);
|
||||||
j++;
|
j++;
|
||||||
#ifdef RDCOLL_DEBUG
|
#ifdef RDCOLL_DEBUG
|
||||||
DBG_FPRINTF(stderr, "node %d, recv_size %d, tag %d \n",
|
DBG_FPRINTF(stderr, "node %d, recv_size %d, tag %d \n",
|
||||||
myrank, recv_size[i], myrank+i+100*iter);
|
myrank, recv_size[i], myrank+i+100*iter);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* create derived datatypes and send data */
|
/* create derived datatypes and send data */
|
||||||
|
@ -440,7 +440,7 @@ static void *_intercept_shmat(int shmid, const void *shmaddr, int shmflg)
|
|||||||
|
|
||||||
if (!original_shmat) {
|
if (!original_shmat) {
|
||||||
#if defined(SYS_shmat)
|
#if defined(SYS_shmat)
|
||||||
result = memory_patcher_syscall(SYS_shmat, shmid, shmaddr, shmflg);
|
result = (void*) memory_patcher_syscall(SYS_shmat, shmid, shmaddr, shmflg);
|
||||||
#else // IPCOP_shmat
|
#else // IPCOP_shmat
|
||||||
unsigned long ret;
|
unsigned long ret;
|
||||||
ret = memory_patcher_syscall(SYS_ipc, IPCOP_shmat,
|
ret = memory_patcher_syscall(SYS_ipc, IPCOP_shmat,
|
||||||
|
@ -454,11 +454,22 @@ static int do_child(orte_odls_spawn_caddy_t *cd, int write_fd)
|
|||||||
|
|
||||||
/* Exec the new executable */
|
/* Exec the new executable */
|
||||||
execve(cd->cmd, cd->argv, cd->env);
|
execve(cd->cmd, cd->argv, cd->env);
|
||||||
getcwd(dir, sizeof(dir));
|
/* If we get here, an error has occurred. */
|
||||||
|
(void) getcwd(dir, sizeof(dir));
|
||||||
|
struct stat stats;
|
||||||
|
char* msg;
|
||||||
|
/* If errno is ENOENT, that indicates either cd->cmd does not exist, or
|
||||||
|
* cd->cmd is a script, but has a bad interpreter specified. */
|
||||||
|
if (ENOENT == errno && 0 == stat(cd->app->app, &stats)) {
|
||||||
|
asprintf(&msg, "%s has a bad interpreter on the first line.",
|
||||||
|
cd->app->app);
|
||||||
|
} else {
|
||||||
|
msg = strdup(strerror(errno));
|
||||||
|
}
|
||||||
send_error_show_help(write_fd, 1,
|
send_error_show_help(write_fd, 1,
|
||||||
"help-orte-odls-default.txt", "execve error",
|
"help-orte-odls-default.txt", "execve error",
|
||||||
orte_process_info.nodename, dir, cd->app->app, strerror(errno));
|
orte_process_info.nodename, dir, cd->app->app, msg);
|
||||||
/* Does not return */
|
free(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user