Skip to content

Commit

Permalink
Merge pull request #1204 from rhc54/cmr20/up
Browse files Browse the repository at this point in the history
Prep for v2.0.2 release
  • Loading branch information
rhc54 authored Feb 9, 2022
2 parents 7e80958 + 44c016c commit aa57929
Show file tree
Hide file tree
Showing 12 changed files with 159 additions and 125 deletions.
12 changes: 12 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,18 @@ This file contains the main features as well as overviews of specific
bug fixes (and other actions) for each version of PRRTE since
version 1.0.

2.0.2: 11 Feb 2022
-------------------
**** NOTE: This release contains a workaround that resolves the prior
**** conflict with HWLOC versions 2.5.0 through 2.7.0 (inclusive).
**** Those versions of HWLOC are now supported.

PR #1197: Cleanup a bit in prep for PMIx v5 release
PR #1195: Remove HWLOC version block
PR #1190: Add missing examples to tarball
PR #1189: Ensure an error gets reported when rankfile fails


2.0.1: 1 Feb 2022
------------------------------------
+**** NOTE: As of v2.0.1, PRRTE no longer has a dependency on "pandoc"
Expand Down
6 changes: 3 additions & 3 deletions VERSION
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

major=2
minor=0
release=1
release=2

# greek is generally used for alpha or beta release tags. If it is
# non-empty, it will be appended to the version number. It does not
Expand All @@ -26,7 +26,7 @@ release=1
# requirement is that it must be entirely printable ASCII characters
# and have no white space.

greek=rc5
greek=

# If repo_rev is empty, then the repository version number will be
# obtained during "make dist" via the "git describe --tags --always"
Expand Down Expand Up @@ -78,7 +78,7 @@ date="Nov 24, 2018"
# Version numbers are described in the Libtool current:revision:age
# format.

libprrte_so_version=2:1:0
libprrte_so_version=2:2:0

# "Common" components install standalone libraries that are run-time
# linked by one or more components. So they need to be versioned as
Expand Down
21 changes: 0 additions & 21 deletions config/prte_setup_hwloc.m4
Original file line number Diff line number Diff line change
Expand Up @@ -94,27 +94,6 @@ AC_DEFUN([PRTE_SETUP_HWLOC],[
PRTE_FLAGS_PREPEND_UNIQ([LDFLAGS], [$prte_hwloc_LDFLAGS])
PRTE_FLAGS_PREPEND_UNIQ([LIBS], [$prte_hwloc_LIBS])

AC_MSG_CHECKING([if hwloc version is in 2.5.0-2.7.0 range])
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([#include <hwloc.h>],
[[
#if HWLOC_VERSION_MAJOR == 2
#if (HWLOC_VERSION_MINOR == 7 && HWLOC_VERSION_RELEASE == 0) || HWLOC_VERSION_MINOR == 6 || HWLOC_VERSION_MINOR == 5
#error "hwloc version is in blocklist range"
#endif
#endif
]])],
[AC_MSG_RESULT([no])],
[AC_MSG_RESULT([yes])
AC_MSG_WARN([***********************************************************])
AC_MSG_WARN([PRRTE is not compatible with HWLOC versions 2.5.0-2.7.0 (inclusive)])
AC_MSG_WARN([due to a bug in HWLOC's setting of environmental variables.])
AC_MSG_WARN([Please switch the HWLOC installation to a version outside])
AC_MSG_WARN([of that range.])
AC_MSG_WARN([***********************************************************])
AC_MSG_ERROR([Cannot continue])])
AC_MSG_CHECKING([if hwloc version is 1.5 or greater])
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([#include <hwloc.h>],
Expand Down
23 changes: 16 additions & 7 deletions examples/Makefile.include
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved.
# Copyright (c) 2013 Mellanox Technologies, Inc. All rights reserved.
# Copyright (c) 2016-2020 Intel, Inc. All rights reserved.
# Copyright (c) 2021 Nanook Consulting. All rights reserved.
# Copyright (c) 2021-2022 Nanook Consulting. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
Expand All @@ -35,23 +35,32 @@
EXTRA_DIST += \
examples/README \
examples/Makefile \
examples/examples.h \
examples/alloc.c \
examples/bad_exit.c \
examples/client.c \
examples/debugger/direct.c \
examples/debugger/direct-multi.c \
examples/debugger/indirect.c \
examples/debugger/indirect-multi.c \
examples/client2.c\
examples/daemon_error_notify.c \
examples/debugger/attach.c \
examples/debugger/daemon.c \
examples/debugger/direct.c \
examples/debugger/direct-multi.c \
examples/debugger/indirect.c \
examples/debugger/indirect-multi.c \
examples/debugger/hello.c \
examples/dmodex.c \
examples/dynamic.c \
examples/error_notify.c \
examples/fault.c \
examples/hello.c \
examples/jctrl.c \
examples/launcher.c \
examples/legacy.c \
examples/log.c \
examples/pmi1client.c \
examples/probe.c \
examples/pub.c \
examples/tool.c \
examples/server.c \
examples/showkeys.c \
examples/legacy.c
examples/target.c \
examples/tool.c
22 changes: 16 additions & 6 deletions examples/server.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corporation. All rights reserved.
* Copyright (c) 2021 Nanook Consulting. All rights reserved.
* Copyright (c) 2021-2022 Nanook Consulting All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
Expand Down Expand Up @@ -572,6 +572,7 @@ static pmix_status_t publish_fn(const pmix_proc_t *proc, const pmix_info_t info[
{
pmix_locdat_t *p;
size_t n;
pmix_status_t rc = PMIX_SUCCESS;

pmix_output(0, "SERVER: PUBLISH");

Expand All @@ -580,13 +581,16 @@ static pmix_status_t publish_fn(const pmix_proc_t *proc, const pmix_info_t info[
(void) strncpy(p->pdata.proc.nspace, proc->nspace, PMIX_MAX_NSLEN);
p->pdata.proc.rank = proc->rank;
(void) strncpy(p->pdata.key, info[n].key, PMIX_MAX_KEYLEN);
pmix_value_xfer(&p->pdata.value, (pmix_value_t *) &info[n].value);
PMIX_VALUE_XFER(rc, &p->pdata.value, (pmix_value_t *) &info[n].value);
if (PMIX_SUCCESS != rc) {
break;
}
pmix_list_append(&pubdata, &p->super);
}
if (NULL != cbfunc) {
cbfunc(PMIX_SUCCESS, cbdata);
cbfunc(rc, cbdata);
}
return PMIX_SUCCESS;
return rc;
}

static pmix_status_t lookup_fn(const pmix_proc_t *proc, char **keys, const pmix_info_t info[],
Expand All @@ -609,7 +613,10 @@ static pmix_status_t lookup_fn(const pmix_proc_t *proc, char **keys, const pmix_
(void) strncpy(p2->pdata.proc.nspace, p->pdata.proc.nspace, PMIX_MAX_NSLEN);
p2->pdata.proc.rank = p->pdata.proc.rank;
(void) strncpy(p2->pdata.key, p->pdata.key, PMIX_MAX_KEYLEN);
pmix_value_xfer(&p2->pdata.value, &p->pdata.value);
PMIX_VALUE_XFER(ret, &p2->pdata.value, &p->pdata.value);
if (PMIX_SUCCESS != ret) {
break;
}
pmix_list_append(&results, &p2->super);
break;
}
Expand All @@ -624,7 +631,10 @@ static pmix_status_t lookup_fn(const pmix_proc_t *proc, char **keys, const pmix_
(void) strncpy(pd[i].proc.nspace, p->pdata.proc.nspace, PMIX_MAX_NSLEN);
pd[i].proc.rank = p->pdata.proc.rank;
(void) strncpy(pd[i].key, p->pdata.key, PMIX_MAX_KEYLEN);
pmix_value_xfer(&pd[i].value, &p->pdata.value);
PMIX_VALUE_XFER(ret, &pd[i].value, &p->pdata.value);
if (PMIX_SUCCESS != ret) {
break;
}
}
}
}
Expand Down
3 changes: 2 additions & 1 deletion src/hwloc/hwloc-internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,8 @@ PRTE_EXPORT int prte_hwloc_base_memory_set(prte_hwloc_base_memory_segment_t *seg
* Make a prettyprint string for a hwloc_cpuset_t (e.g., "package
* 2[core 3]").
*/
PRTE_EXPORT char *prte_hwloc_base_cset2str(hwloc_cpuset_t cpuset, bool use_hwthread_cpus,
PRTE_EXPORT char *prte_hwloc_base_cset2str(hwloc_const_cpuset_t cpuset,
bool use_hwthread_cpus,
hwloc_topology_t topo);

/* get the hwloc object that corresponds to the given processor id and type */
Expand Down
21 changes: 15 additions & 6 deletions src/hwloc/hwloc_base_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
* All rights reserved.
* Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights reserved.
* Copyright (c) 2019-2020 IBM Corporation. All rights reserved.
* Copyright (c) 2021 Nanook Consulting. All rights reserved.
* Copyright (c) 2021-2022 Nanook Consulting. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
Expand Down Expand Up @@ -937,8 +937,8 @@ static int package_core_to_cpu_set(char *package_core_list, hwloc_topology_t top
package_id = atoi(package_core[0]);

/* get the object for this package id */
if (NULL
== (package = prte_hwloc_base_get_obj_by_type(topo, HWLOC_OBJ_PACKAGE, 0, package_id))) {
package = prte_hwloc_base_get_obj_by_type(topo, HWLOC_OBJ_PACKAGE, 0, package_id);
if (NULL == package) {
prte_argv_free(package_core);
return PRTE_ERR_NOT_FOUND;
}
Expand Down Expand Up @@ -978,6 +978,10 @@ static int package_core_to_cpu_set(char *package_core_list, hwloc_topology_t top
core_id = atoi(list[j]) + npus;
/* get that object */
core = prte_hwloc_base_get_obj_by_type(topo, obj_type, 0, core_id);
if (NULL == core) {
rc = PRTE_ERR_NOT_FOUND;
break;
}
/* get the cpus */
hwloc_bitmap_or(cpumask, cpumask, core->cpuset);
}
Expand All @@ -994,6 +998,10 @@ static int package_core_to_cpu_set(char *package_core_list, hwloc_topology_t top
core_id = j + npus;
/* get that object */
core = prte_hwloc_base_get_obj_by_type(topo, obj_type, 0, core_id);
if (NULL == core) {
rc = PRTE_ERR_NOT_FOUND;
break;
}
/* get the cpus add them into the result */
hwloc_bitmap_or(cpumask, cpumask, core->cpuset);
}
Expand Down Expand Up @@ -1092,7 +1100,7 @@ int prte_hwloc_base_cpu_list_parse(const char *slot_str, hwloc_topology_t topo,
prte_argv_free(item);
prte_argv_free(rngs);
prte_argv_free(list);
return PRTE_ERR_SILENT;
return PRTE_ERR_NOT_FOUND;
}
/* get the cpus for that object and set them in the massk*/
hwloc_bitmap_or(cpumask, cpumask, pu->cpuset);
Expand All @@ -1109,7 +1117,7 @@ int prte_hwloc_base_cpu_list_parse(const char *slot_str, hwloc_topology_t topo,
prte_argv_free(range);
prte_argv_free(item);
prte_argv_free(rngs);
return PRTE_ERR_SILENT;
return PRTE_ERR_NOT_FOUND;
}
/* get the cpus for that object and set them in the mask*/
hwloc_bitmap_or(cpumask, cpumask, pu->cpuset);
Expand Down Expand Up @@ -1495,7 +1503,8 @@ static void build_map(hwloc_topology_t topo, hwloc_cpuset_t avail, bool use_hwth
/*
* Make a prettyprint string for a hwloc_cpuset_t
*/
char *prte_hwloc_base_cset2str(hwloc_cpuset_t cpuset, bool use_hwthread_cpus, hwloc_topology_t topo)
char *prte_hwloc_base_cset2str(hwloc_const_cpuset_t cpuset,
bool use_hwthread_cpus, hwloc_topology_t topo)
{
int n, npkgs, npus, ncores;
char tmp[2048], ans[4096];
Expand Down
78 changes: 16 additions & 62 deletions src/mca/rmaps/rank_file/help-rmaps_rank_file.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Copyright (c) 2013 Los Alamos National Security, LLC.
# All rights reserved.
# Copyright (c) 2018-2020 Intel, Inc. All rights reserved.
# Copyright (c) 2021 Nanook Consulting. All rights reserved.
# Copyright (c) 2021-2022 Nanook Consulting. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
Expand All @@ -13,23 +13,12 @@
#
# This is the US/English general help file for rankle utilities.
#
# Voltaire
[no-hwloc]
A slot_list containing detailed location info was given, but
hwloc support is not available:

Rank: %d
Slot list: %s

Unfortunately, hwloc support is required for this action.
Please reconfigure OMPI for hwloc if binding to specified
cpus is desired.
[no-rankfile]
PRTE was unable to open the rankfile:
%s
%s was unable to open the rankfile:
Filename: %s
Check to make sure the path and filename are correct.

usage: prun --map-by rankfile:file=<path> ./app
usage: %s -mca rmaps_rankfile_path rankfile ./app

Examples of proper syntax include:
cat hostfile
Expand All @@ -43,43 +32,6 @@ Examples of proper syntax include:
rank 2=host4 slot=1-2
rank 3=host3 slot=0:1;1:0-2
#
[parse_error_string]
PRTE detected a parse error in the rankfile (%s)
It occured on line number %d on token %d:
%s
Examples of proper syntax include:
rank 1=host1 slot=1:0,1
rank 0=host2 slot=0:*
rank 2=host4 slot=1-2
rank 3=host3 slot=0:1;1:0-2
#
[parse_error_int]
PRTE detected a parse error in the rankfile (%s)
It occured on line number %d on token %d:
%d
Examples of proper syntax include:
rank 1=host1 slot=1:0,1
rank 0=host2 slot=0:*
rank 2=host4 slot=1-2
rank 3=host3 slot=0:1;1:0-2
#
[parse_error]
PRTE detected a parse error in the rankfile (%s)
It occured on line number %d on token %d. Examples of
proper syntax include:
rank 1=host1 slot=1:0,1
rank 0=host2 slot=0:*
rank 2=host4 slot=1-2
rank 3=host3 slot=0:1;1:0-2

#
[not-all-mapped-alloc]
Some of the requested ranks are not included in the current allocation.
%s

Please verify that you have specified the allocated resources properly in
the provided rankfile.
#
[bad-host]
The rankfile that was used claimed that a host was either not
allocated or oversubscribed its slots. Please review your rank-slot
Expand All @@ -92,28 +44,21 @@ some systems may require using full hostnames, such as
[bad-index]
Rankfile claimed host %s by index that is bigger than number of allocated hosts.
#
[bad-rankfile]
Error, invalid rank (%d) in the rankfile (%s)
#
[bad-assign]
Error, rank %d is already assigned to %s, check %s
#
[bad-syntax]
Error, invalid syntax in the rankfile (%s)
syntax must be the fallowing
syntax must be the following

rank i=host_i slot=string

Examples of proper syntax include:
rank 1=host1 slot=1:0,1
rank 0=host2 slot=0:*
rank 2=host4 slot=1-2
rank 3=host3 slot=0:1;1:0-2
#
[prte-rmaps-rf:multi-apps-and-zero-np]
RMAPS found multiple applications to be launched, with
at least one that failed to specify the number of processes to execute.
When specifying multiple applications, you must specify how many processes
of each to launch via the -np argument.
#
[missing-rank]
A rank is missing its location specification:

Expand All @@ -123,3 +68,12 @@ A rank is missing its location specification:
All processes must have their location specified in the rank file. Either
add an entry to the file, or provide a default slot_list to use for
any unspecified ranks.
#
[missing-cpu]
While parsing the rankfile, %s encountered a line that specified
a non-existent CPU:

Slots: %s
Available CPUs: %s

Please correct the line and try again.
Loading

0 comments on commit aa57929

Please sign in to comment.