diff --git a/src/plugins/task/affinity/dist_tasks.c b/src/plugins/task/affinity/dist_tasks.c index 62c46d4ae9f03fad6a40940f9bffea7da399021d..5bc1eda1e28994d3b49304add2f86dfa834a6a07 100644 --- a/src/plugins/task/affinity/dist_tasks.c +++ b/src/plugins/task/affinity/dist_tasks.c @@ -1157,8 +1157,9 @@ static int _task_layout_lllp_block(launch_tasks_request_msg_t *req, continue; sock_inx = i / pu_per_socket; - if (socket_tasks[sock_inx] >= req->ntasks_per_socket) - continue; /* Default ntasks_per_socket = INFINITE */ + if ((req->ntasks_per_socket != 0) && + (socket_tasks[sock_inx] >= req->ntasks_per_socket)) + continue; socket_tasks[sock_inx]++; if (!masks[taskcount]) @@ -1196,6 +1197,8 @@ static int _task_layout_lllp_block(launch_tasks_request_msg_t *req, if (++taskcount >= max_tasks) break; } + for (i = 0; i < hw_sockets; i++) + socket_tasks[i] = 0; } xfree(socket_tasks);