1
1

Utilize a non-used mapping policy bit to define a policy that uses only existing alive daemons to support virtual machines and restarting processes on already-active nodes

This commit was SVN r22951.
Этот коммит содержится в:
Ralph Castain 2010-04-10 05:02:47 +00:00
родитель 4f8279df3d
Коммит d3ed4e68b7
2 изменённых файлов: 24 добавлений и 1 удалений

Просмотреть файл

@ -230,6 +230,29 @@ int orte_rmaps_base_get_target_nodes(opal_list_t *allocated_nodes, orte_std_cntr
return ORTE_SUCCESS;
}
/* if we are mapping an application, check to see if we are to
* use a virtual machine
*/
if (policy & ORTE_MAPPING_USE_VM) {
/* remove all nodes that do NOT have an "alive" daemon on them */
item = opal_list_get_first(allocated_nodes);
while (item != opal_list_get_end(allocated_nodes)) {
/** save the next pointer in case we remove this node */
next = opal_list_get_next(item);
/** already have a daemon? */
node = (orte_node_t*)item;
if (NULL == node->daemon || NULL == node->daemon->rml_uri) {
opal_list_remove_item(allocated_nodes, item);
OBJ_RELEASE(item); /* "un-retain" it */
}
/** go on to next item */
item = next;
}
}
/* remove all nodes that are already at max usage, and
* compute the total number of allocated slots while
* we do so

Просмотреть файл

@ -290,7 +290,7 @@ typedef uint8_t orte_job_controls_t;
#define ORTE_MAPPING_POLICY OPAL_UINT16
/* put the rank assignment method in the upper 8 bits */
#define ORTE_MAPPING_NOPOL 0x0100
#define ORTE_MAPPING_USE_VM 0x0100
#define ORTE_MAPPING_BYNODE 0x0200
#define ORTE_MAPPING_BYSLOT 0x0400
#define ORTE_MAPPING_BYSOCKET 0x0800