[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.1rc2-189-g3457b35

mysql vizuser noreply at mpich.org
Mon Jan 27 20:02:52 CST 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".

The branch, master has been updated
       via  3457b353765078d5a37be8b043811fc7e547bcd6 (commit)
       via  774b7c814855a8766c0e9980b94199ab3bf4f796 (commit)
      from  201b0dbfbcad7b1399eb64df6c0db3eb909ad787 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/3457b353765078d5a37be8b043811fc7e547bcd6

commit 3457b353765078d5a37be8b043811fc7e547bcd6
Author: Ken Raffenetti <raffenet at mcs.anl.gov>
Date:   Mon Jan 27 14:00:42 2014 -0600

    add manual test for process affinity
    
    Add a number of synthetic topologies and reference binding bitmaps to
    the implementation specific tests directory. Running the proc_binding.sh
    script will show any errors in hydra's binding logic.
    
    Signed-off-by: Pavan Balaji <balaji at mcs.anl.gov>

diff --git a/test/mpi/.gitignore b/test/mpi/.gitignore
index 4a81675..64552b0 100644
--- a/test/mpi/.gitignore
+++ b/test/mpi/.gitignore
@@ -1004,5 +1004,7 @@
 /topo/graphcr
 /topo/graphcr2
 /topo/neighb_coll
+/impls/hydra/dummy
+/impls/hydra/proc_binding.sh
 /impls/mpich/testlist
 /impls/testlist
diff --git a/test/mpi/configure.ac b/test/mpi/configure.ac
index abb2c28..ea519d1 100644
--- a/test/mpi/configure.ac
+++ b/test/mpi/configure.ac
@@ -1443,6 +1443,7 @@ fi
 AC_OUTPUT_COMMANDS([chmod a+x maint/testmerge])
 AC_OUTPUT_COMMANDS([chmod a+x runtests checktests])
 AC_OUTPUT_COMMANDS([chmod a+x manual/manyconnect])
+AC_OUTPUT_COMMANDS([chmod a+x impls/hydra/proc_binding.sh])
 dnl Note that this format for AC_OUTPUT can cause problems for autoconf
 dnl run under cygwin
 AC_OUTPUT(maint/testmerge \
@@ -1575,6 +1576,8 @@ AC_OUTPUT(maint/testmerge \
           errors/f90/testlist \
           impls/testlist \
           impls/Makefile \
+	  impls/hydra/Makefile \
+	  impls/hydra/proc_binding.sh \
           impls/mpich/Makefile \
           impls/mpich/testlist \
           impls/mpich/mpi_t/Makefile \
diff --git a/test/mpi/impls/Makefile.am b/test/mpi/impls/Makefile.am
index fbe2c38..f74f9fc 100644
--- a/test/mpi/impls/Makefile.am
+++ b/test/mpi/impls/Makefile.am
@@ -11,4 +11,4 @@ EXTRA_DIST = testlist.in
 
 static_subdirs =
 SUBDIRS      = $(static_subdirs) $(impldir)
-DIST_SUBDIRS = $(static_subdirs) mpich
+DIST_SUBDIRS = $(static_subdirs) mpich hydra
diff --git a/test/mpi/impls/hydra/Makefile.am b/test/mpi/impls/hydra/Makefile.am
new file mode 100644
index 0000000..6d3ff4d
--- /dev/null
+++ b/test/mpi/impls/hydra/Makefile.am
@@ -0,0 +1,13 @@
+# -*- Mode: Makefile; -*-
+# vim: set ft=automake :
+#
+# (C) 2011 by Argonne National Laboratory.
+#     See COPYRIGHT in top-level directory.
+#
+
+testing: dummy
+	$(builddir)/proc_binding.sh
+
+noinst_PROGRAMS = dummy
+
+CLEANFILES = actual.*
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.board.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.board.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.board.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.core.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.board.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.core:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.board.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.core:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread:8.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.board.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.numa.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.board.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.socket.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.board.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.board.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.core.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.core:2.out
new file mode 100644
index 0000000..1e3810e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.core:4.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread.out
new file mode 100644
index 0000000..f235420
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 1 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 1 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 1 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 1 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 1 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 1 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 1 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 1 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread:2.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread:4.out
new file mode 100644
index 0000000..1e3810e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread:8.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.numa.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.socket.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.board.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.core.out
new file mode 100644
index 0000000..791332f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 1 1 1 1 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 
+process 3 binding: 1 1 0 0 0 0 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 1 1 1 1 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 1 1 1 1 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.core:2.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.core:4.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread.out
new file mode 100644
index 0000000..4f28c56
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 1 1 1 1 0 0 0 0 
+process 2 binding: 0 0 1 1 1 1 0 0 
+process 3 binding: 0 0 1 1 1 1 0 0 
+process 4 binding: 0 0 0 0 1 1 1 1 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 0 0 0 0 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 1 1 1 1 0 0 0 0 
+process 10 binding: 0 0 1 1 1 1 0 0 
+process 11 binding: 0 0 1 1 1 1 0 0 
+process 12 binding: 0 0 0 0 1 1 1 1 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 0 0 0 0 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread:2.out
new file mode 100644
index 0000000..791332f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 1 1 1 1 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 
+process 3 binding: 1 1 0 0 0 0 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 1 1 1 1 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 1 1 1 1 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread:4.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread:8.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.numa.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.socket.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.board.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.core.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.core:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.core:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread:8.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.numa.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.socket.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.board.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.core.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.core:2.out
new file mode 100644
index 0000000..6ab904f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.core:4.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread:2.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread:4.out
new file mode 100644
index 0000000..6ab904f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread:8.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.numa.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.socket.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.board.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.core.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.core:2.out
new file mode 100644
index 0000000..1e3810e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.core:4.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread.out
new file mode 100644
index 0000000..dca323c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 1 1 0 0 0 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 1 1 0 0 0 
+process 4 binding: 0 0 0 0 1 1 0 0 
+process 5 binding: 0 0 0 0 0 1 1 0 
+process 6 binding: 0 0 0 0 0 0 1 1 
+process 7 binding: 1 0 0 0 0 0 0 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 1 1 0 0 0 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 1 1 0 0 0 
+process 12 binding: 0 0 0 0 1 1 0 0 
+process 13 binding: 0 0 0 0 0 1 1 0 
+process 14 binding: 0 0 0 0 0 0 1 1 
+process 15 binding: 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread:2.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread:4.out
new file mode 100644
index 0000000..1e3810e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread:8.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.numa.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.socket.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.board.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.core.out
new file mode 100644
index 0000000..791332f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 1 1 1 1 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 
+process 3 binding: 1 1 0 0 0 0 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 1 1 1 1 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 1 1 1 1 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.core:2.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.core:4.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread.out
new file mode 100644
index 0000000..bbf9f7f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 1 1 1 1 0 0 0 
+process 2 binding: 0 0 1 1 1 1 0 0 
+process 3 binding: 0 0 0 1 1 1 1 0 
+process 4 binding: 0 0 0 0 1 1 1 1 
+process 5 binding: 1 0 0 0 0 1 1 1 
+process 6 binding: 1 1 0 0 0 0 1 1 
+process 7 binding: 1 1 1 0 0 0 0 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 1 1 1 1 0 0 0 
+process 10 binding: 0 0 1 1 1 1 0 0 
+process 11 binding: 0 0 0 1 1 1 1 0 
+process 12 binding: 0 0 0 0 1 1 1 1 
+process 13 binding: 1 0 0 0 0 1 1 1 
+process 14 binding: 1 1 0 0 0 0 1 1 
+process 15 binding: 1 1 1 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread:2.out
new file mode 100644
index 0000000..791332f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 1 1 1 1 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 
+process 3 binding: 1 1 0 0 0 0 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 1 1 1 1 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 1 1 1 1 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread:4.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread:8.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.numa.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.socket.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.board.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.core.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.core:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.core:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread:8.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.numa.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.socket.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.board.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.core.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.core:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.core:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread:8.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.numa.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.socket.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.numa.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.board.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.core.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.core:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.core:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread:8.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.numa.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.socket.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo1.socket.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.board.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.board.out
new file mode 100644
index 0000000..6a170f2
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.board.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.core.out
new file mode 100644
index 0000000..6a170f2
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.board.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.core:2.out
new file mode 100644
index 0000000..6a170f2
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.board.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.core:4.out
new file mode 100644
index 0000000..6a170f2
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread.out
new file mode 100644
index 0000000..6a170f2
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread:2.out
new file mode 100644
index 0000000..6a170f2
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread:4.out
new file mode 100644
index 0000000..6a170f2
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread:8.out
new file mode 100644
index 0000000..6a170f2
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.board.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.numa.out
new file mode 100644
index 0000000..6a170f2
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.board.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.socket.out
new file mode 100644
index 0000000..6a170f2
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.board.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.board.out
new file mode 100644
index 0000000..4fcd88e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.core.out
new file mode 100644
index 0000000..4fcd88e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.core:2.out
new file mode 100644
index 0000000..15bd9ef
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.core:4.out
new file mode 100644
index 0000000..349c36c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread.out
new file mode 100644
index 0000000..9d46f9e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 3 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 6 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 8 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 10 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 13 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread:2.out
new file mode 100644
index 0000000..4fcd88e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread:4.out
new file mode 100644
index 0000000..15bd9ef
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread:8.out
new file mode 100644
index 0000000..349c36c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.numa.out
new file mode 100644
index 0000000..349c36c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.socket.out
new file mode 100644
index 0000000..349c36c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.board.out
new file mode 100644
index 0000000..0feba67
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.core.out
new file mode 100644
index 0000000..1897bb9
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 
+process 4 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 5 binding: 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 
+process 6 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 7 binding: 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 
+process 12 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 13 binding: 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 
+process 14 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 15 binding: 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.core:2.out
new file mode 100644
index 0000000..0feba67
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.core:4.out
new file mode 100644
index 0000000..4bb862b
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread.out
new file mode 100644
index 0000000..cf8fb69
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 2 binding: 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 
+process 3 binding: 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 
+process 4 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 
+process 7 binding: 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 
+process 8 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 
+process 11 binding: 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 
+process 12 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 13 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 14 binding: 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 
+process 15 binding: 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread:2.out
new file mode 100644
index 0000000..1897bb9
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 
+process 4 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 5 binding: 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 
+process 6 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 7 binding: 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 
+process 12 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 13 binding: 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 
+process 14 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 15 binding: 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread:4.out
new file mode 100644
index 0000000..0feba67
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread:8.out
new file mode 100644
index 0000000..4bb862b
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.numa.out
new file mode 100644
index 0000000..4bb862b
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.socket.out
new file mode 100644
index 0000000..4bb862b
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.board.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.core.out
new file mode 100644
index 0000000..b4a0141
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 
+process 2 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 3 binding: 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 
+process 4 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 5 binding: 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 
+process 6 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 7 binding: 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 
+process 10 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 11 binding: 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 
+process 12 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 13 binding: 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 
+process 14 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 15 binding: 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.core:2.out
new file mode 100644
index 0000000..e9efd88
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 3 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.core:4.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread.out
new file mode 100644
index 0000000..7b2c5aa
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 2 binding: 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 
+process 3 binding: 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 
+process 4 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 
+process 7 binding: 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 
+process 8 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 
+process 11 binding: 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 
+process 12 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 13 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 14 binding: 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 
+process 15 binding: 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread:2.out
new file mode 100644
index 0000000..b4a0141
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 
+process 2 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 3 binding: 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 
+process 4 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 5 binding: 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 
+process 6 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 7 binding: 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 
+process 10 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 11 binding: 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 
+process 12 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 13 binding: 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 
+process 14 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 15 binding: 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread:4.out
new file mode 100644
index 0000000..e9efd88
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 3 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread:8.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.numa.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.socket.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.board.out
new file mode 100644
index 0000000..ed56af8
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 6 binding: 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 
+process 8 binding: 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 
+process 10 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.core.out
new file mode 100644
index 0000000..69996c1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
+process 8 binding: 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.core:2.out
new file mode 100644
index 0000000..32e9bd0
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
+process 4 binding: 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 6 binding: 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 
+process 8 binding: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
+process 10 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
+process 12 binding: 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.core:4.out
new file mode 100644
index 0000000..7d2e6e4
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
+process 2 binding: 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 
+process 4 binding: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
+process 6 binding: 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 
+process 8 binding: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
+process 10 binding: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 
+process 12 binding: 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
+process 14 binding: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread.out
new file mode 100644
index 0000000..ed56af8
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 6 binding: 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 
+process 8 binding: 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 
+process 10 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread:2.out
new file mode 100644
index 0000000..69996c1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
+process 8 binding: 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread:4.out
new file mode 100644
index 0000000..32e9bd0
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
+process 4 binding: 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 6 binding: 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 
+process 8 binding: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
+process 10 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
+process 12 binding: 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread:8.out
new file mode 100644
index 0000000..7d2e6e4
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
+process 2 binding: 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 
+process 4 binding: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
+process 6 binding: 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 
+process 8 binding: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
+process 10 binding: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 
+process 12 binding: 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
+process 14 binding: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.numa.out
new file mode 100644
index 0000000..7d2e6e4
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
+process 2 binding: 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 
+process 4 binding: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
+process 6 binding: 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 
+process 8 binding: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
+process 10 binding: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 
+process 12 binding: 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
+process 14 binding: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.socket.out
new file mode 100644
index 0000000..7d2e6e4
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
+process 2 binding: 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 
+process 4 binding: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 
+process 6 binding: 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 
+process 8 binding: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 
+process 10 binding: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 
+process 12 binding: 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
+process 14 binding: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.board.out
new file mode 100644
index 0000000..4fcd88e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.core.out
new file mode 100644
index 0000000..4fcd88e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.core:2.out
new file mode 100644
index 0000000..15bd9ef
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.core:4.out
new file mode 100644
index 0000000..349c36c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread.out
new file mode 100644
index 0000000..baebe8d
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 
+process 6 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 
+process 8 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 9 binding: 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 
+process 10 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 13 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 15 binding: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread:2.out
new file mode 100644
index 0000000..4fcd88e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread:4.out
new file mode 100644
index 0000000..15bd9ef
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread:8.out
new file mode 100644
index 0000000..349c36c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.numa.out
new file mode 100644
index 0000000..349c36c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.socket.out
new file mode 100644
index 0000000..349c36c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.board.out
new file mode 100644
index 0000000..0feba67
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.core.out
new file mode 100644
index 0000000..1897bb9
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 
+process 4 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 5 binding: 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 
+process 6 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 7 binding: 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 
+process 12 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 13 binding: 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 
+process 14 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 15 binding: 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.core:2.out
new file mode 100644
index 0000000..0feba67
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.core:4.out
new file mode 100644
index 0000000..4bb862b
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread.out
new file mode 100644
index 0000000..5078c16
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 2 binding: 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 
+process 3 binding: 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 
+process 4 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 5 binding: 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 
+process 7 binding: 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 
+process 8 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 9 binding: 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 
+process 12 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 13 binding: 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 
+process 14 binding: 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 
+process 15 binding: 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread:2.out
new file mode 100644
index 0000000..1897bb9
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 
+process 4 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 5 binding: 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 
+process 6 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 7 binding: 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 
+process 12 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 13 binding: 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 
+process 14 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 15 binding: 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread:4.out
new file mode 100644
index 0000000..0feba67
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread:8.out
new file mode 100644
index 0000000..4bb862b
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.numa.out
new file mode 100644
index 0000000..4bb862b
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.socket.out
new file mode 100644
index 0000000..4bb862b
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.board.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.core.out
new file mode 100644
index 0000000..b4a0141
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 
+process 2 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 3 binding: 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 
+process 4 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 5 binding: 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 
+process 6 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 7 binding: 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 
+process 10 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 11 binding: 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 
+process 12 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 13 binding: 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 
+process 14 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 15 binding: 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.core:2.out
new file mode 100644
index 0000000..e9efd88
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 3 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.core:4.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread.out
new file mode 100644
index 0000000..0d50a3a
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 
+process 2 binding: 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 
+process 3 binding: 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 
+process 4 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 5 binding: 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 
+process 8 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 9 binding: 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 
+process 12 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 13 binding: 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 
+process 14 binding: 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 
+process 15 binding: 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread:2.out
new file mode 100644
index 0000000..b4a0141
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 
+process 2 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 3 binding: 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 
+process 4 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 5 binding: 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 
+process 6 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 7 binding: 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 
+process 10 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 11 binding: 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 
+process 12 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 13 binding: 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 
+process 14 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 15 binding: 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread:4.out
new file mode 100644
index 0000000..e9efd88
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 3 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread:8.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.numa.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.socket.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.board.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.core.out
new file mode 100644
index 0000000..1c74e8f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.core:2.out
new file mode 100644
index 0000000..8529a43
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.core:4.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread.out
new file mode 100644
index 0000000..e8714ef
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 8 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread:2.out
new file mode 100644
index 0000000..1c74e8f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread:4.out
new file mode 100644
index 0000000..8529a43
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread:8.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.numa.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.socket.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.numa.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.board.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.core.out
new file mode 100644
index 0000000..1c74e8f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.core:2.out
new file mode 100644
index 0000000..8529a43
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.core:4.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread.out
new file mode 100644
index 0000000..e8714ef
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 8 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread:2.out
new file mode 100644
index 0000000..1c74e8f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread:4.out
new file mode 100644
index 0000000..8529a43
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread:8.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.numa.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.socket.out
new file mode 100644
index 0000000..5ecae3c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo2.socket.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.board.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.board.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.board.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.core.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.board.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.core:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.board.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.core:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread:8.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.board.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.numa.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.board.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.socket.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.board.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.board.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.core.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.core:2.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.core:4.out
new file mode 100644
index 0000000..6ab904f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread:2.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread:4.out
new file mode 100644
index 0000000..6ab904f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread:8.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.numa.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.socket.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.board.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.core.out
new file mode 100644
index 0000000..dca323c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 1 1 0 0 0 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 1 1 0 0 0 
+process 4 binding: 0 0 0 0 1 1 0 0 
+process 5 binding: 0 0 0 0 0 1 1 0 
+process 6 binding: 0 0 0 0 0 0 1 1 
+process 7 binding: 1 0 0 0 0 0 0 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 1 1 0 0 0 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 1 1 0 0 0 
+process 12 binding: 0 0 0 0 1 1 0 0 
+process 13 binding: 0 0 0 0 0 1 1 0 
+process 14 binding: 0 0 0 0 0 0 1 1 
+process 15 binding: 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.core:2.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.core:4.out
new file mode 100644
index 0000000..1e3810e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread.out
new file mode 100644
index 0000000..dca323c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 1 1 0 0 0 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 1 1 0 0 0 
+process 4 binding: 0 0 0 0 1 1 0 0 
+process 5 binding: 0 0 0 0 0 1 1 0 
+process 6 binding: 0 0 0 0 0 0 1 1 
+process 7 binding: 1 0 0 0 0 0 0 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 1 1 0 0 0 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 1 1 0 0 0 
+process 12 binding: 0 0 0 0 1 1 0 0 
+process 13 binding: 0 0 0 0 0 1 1 0 
+process 14 binding: 0 0 0 0 0 0 1 1 
+process 15 binding: 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread:2.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread:4.out
new file mode 100644
index 0000000..1e3810e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread:8.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.numa.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.socket.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.board.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.core.out
new file mode 100644
index 0000000..bbf9f7f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 1 1 1 1 0 0 0 
+process 2 binding: 0 0 1 1 1 1 0 0 
+process 3 binding: 0 0 0 1 1 1 1 0 
+process 4 binding: 0 0 0 0 1 1 1 1 
+process 5 binding: 1 0 0 0 0 1 1 1 
+process 6 binding: 1 1 0 0 0 0 1 1 
+process 7 binding: 1 1 1 0 0 0 0 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 1 1 1 1 0 0 0 
+process 10 binding: 0 0 1 1 1 1 0 0 
+process 11 binding: 0 0 0 1 1 1 1 0 
+process 12 binding: 0 0 0 0 1 1 1 1 
+process 13 binding: 1 0 0 0 0 1 1 1 
+process 14 binding: 1 1 0 0 0 0 1 1 
+process 15 binding: 1 1 1 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.core:2.out
new file mode 100644
index 0000000..791332f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 1 1 1 1 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 
+process 3 binding: 1 1 0 0 0 0 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 1 1 1 1 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 1 1 1 1 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.core:4.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread.out
new file mode 100644
index 0000000..bbf9f7f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 1 1 1 1 0 0 0 
+process 2 binding: 0 0 1 1 1 1 0 0 
+process 3 binding: 0 0 0 1 1 1 1 0 
+process 4 binding: 0 0 0 0 1 1 1 1 
+process 5 binding: 1 0 0 0 0 1 1 1 
+process 6 binding: 1 1 0 0 0 0 1 1 
+process 7 binding: 1 1 1 0 0 0 0 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 1 1 1 1 0 0 0 
+process 10 binding: 0 0 1 1 1 1 0 0 
+process 11 binding: 0 0 0 1 1 1 1 0 
+process 12 binding: 0 0 0 0 1 1 1 1 
+process 13 binding: 1 0 0 0 0 1 1 1 
+process 14 binding: 1 1 0 0 0 0 1 1 
+process 15 binding: 1 1 1 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread:2.out
new file mode 100644
index 0000000..791332f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 1 1 1 1 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 
+process 3 binding: 1 1 0 0 0 0 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 1 1 1 1 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 1 1 1 1 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread:4.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread:8.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.numa.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.socket.out
new file mode 100644
index 0000000..791332f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 1 1 1 1 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 
+process 3 binding: 1 1 0 0 0 0 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 1 1 1 1 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 1 1 1 1 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.board.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.core.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.core:2.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.core:4.out
new file mode 100644
index 0000000..6ab904f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread:2.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread:4.out
new file mode 100644
index 0000000..6ab904f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread:8.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.numa.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.socket.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.board.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.core.out
new file mode 100644
index 0000000..dca323c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 1 1 0 0 0 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 1 1 0 0 0 
+process 4 binding: 0 0 0 0 1 1 0 0 
+process 5 binding: 0 0 0 0 0 1 1 0 
+process 6 binding: 0 0 0 0 0 0 1 1 
+process 7 binding: 1 0 0 0 0 0 0 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 1 1 0 0 0 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 1 1 0 0 0 
+process 12 binding: 0 0 0 0 1 1 0 0 
+process 13 binding: 0 0 0 0 0 1 1 0 
+process 14 binding: 0 0 0 0 0 0 1 1 
+process 15 binding: 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.core:2.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.core:4.out
new file mode 100644
index 0000000..1e3810e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread.out
new file mode 100644
index 0000000..dca323c
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 1 1 0 0 0 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 1 1 0 0 0 
+process 4 binding: 0 0 0 0 1 1 0 0 
+process 5 binding: 0 0 0 0 0 1 1 0 
+process 6 binding: 0 0 0 0 0 0 1 1 
+process 7 binding: 1 0 0 0 0 0 0 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 1 1 0 0 0 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 1 1 0 0 0 
+process 12 binding: 0 0 0 0 1 1 0 0 
+process 13 binding: 0 0 0 0 0 1 1 0 
+process 14 binding: 0 0 0 0 0 0 1 1 
+process 15 binding: 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread:2.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread:4.out
new file mode 100644
index 0000000..1e3810e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread:8.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.numa.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.socket.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.board.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.core.out
new file mode 100644
index 0000000..bbf9f7f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 1 1 1 1 0 0 0 
+process 2 binding: 0 0 1 1 1 1 0 0 
+process 3 binding: 0 0 0 1 1 1 1 0 
+process 4 binding: 0 0 0 0 1 1 1 1 
+process 5 binding: 1 0 0 0 0 1 1 1 
+process 6 binding: 1 1 0 0 0 0 1 1 
+process 7 binding: 1 1 1 0 0 0 0 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 1 1 1 1 0 0 0 
+process 10 binding: 0 0 1 1 1 1 0 0 
+process 11 binding: 0 0 0 1 1 1 1 0 
+process 12 binding: 0 0 0 0 1 1 1 1 
+process 13 binding: 1 0 0 0 0 1 1 1 
+process 14 binding: 1 1 0 0 0 0 1 1 
+process 15 binding: 1 1 1 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.core:2.out
new file mode 100644
index 0000000..791332f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 1 1 1 1 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 
+process 3 binding: 1 1 0 0 0 0 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 1 1 1 1 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 1 1 1 1 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.core:4.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread.out
new file mode 100644
index 0000000..bbf9f7f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 1 1 1 1 0 0 0 
+process 2 binding: 0 0 1 1 1 1 0 0 
+process 3 binding: 0 0 0 1 1 1 1 0 
+process 4 binding: 0 0 0 0 1 1 1 1 
+process 5 binding: 1 0 0 0 0 1 1 1 
+process 6 binding: 1 1 0 0 0 0 1 1 
+process 7 binding: 1 1 1 0 0 0 0 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 1 1 1 1 0 0 0 
+process 10 binding: 0 0 1 1 1 1 0 0 
+process 11 binding: 0 0 0 1 1 1 1 0 
+process 12 binding: 0 0 0 0 1 1 1 1 
+process 13 binding: 1 0 0 0 0 1 1 1 
+process 14 binding: 1 1 0 0 0 0 1 1 
+process 15 binding: 1 1 1 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread:2.out
new file mode 100644
index 0000000..791332f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 1 1 1 1 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 
+process 3 binding: 1 1 0 0 0 0 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 1 1 1 1 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 1 1 1 1 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread:4.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread:8.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.numa.out
new file mode 100644
index 0000000..222e431
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 1 1 
+process 2 binding: 1 1 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 1 1 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 1 1 
+process 6 binding: 1 1 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 1 1 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 1 1 
+process 10 binding: 1 1 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 1 1 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 1 1 
+process 14 binding: 1 1 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.socket.out
new file mode 100644
index 0000000..791332f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 0 0 0 0 
+process 1 binding: 0 0 1 1 1 1 0 0 
+process 2 binding: 0 0 0 0 1 1 1 1 
+process 3 binding: 1 1 0 0 0 0 1 1 
+process 4 binding: 1 1 1 1 0 0 0 0 
+process 5 binding: 0 0 1 1 1 1 0 0 
+process 6 binding: 0 0 0 0 1 1 1 1 
+process 7 binding: 1 1 0 0 0 0 1 1 
+process 8 binding: 1 1 1 1 0 0 0 0 
+process 9 binding: 0 0 1 1 1 1 0 0 
+process 10 binding: 0 0 0 0 1 1 1 1 
+process 11 binding: 1 1 0 0 0 0 1 1 
+process 12 binding: 1 1 1 1 0 0 0 0 
+process 13 binding: 0 0 1 1 1 1 0 0 
+process 14 binding: 0 0 0 0 1 1 1 1 
+process 15 binding: 1 1 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.board.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.core.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.core:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.core:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread:8.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.numa.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.socket.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.board.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.core.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.core:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.core:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread:8.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.numa.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.socket.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.numa.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.board.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.core.out
new file mode 100644
index 0000000..f235420
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 1 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 1 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 1 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 1 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 1 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 1 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 1 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 1 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.core:2.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.core:4.out
new file mode 100644
index 0000000..1e3810e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread.out
new file mode 100644
index 0000000..f235420
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 1 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 1 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 1 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 1 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 1 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 1 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 1 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 1 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread:2.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread:4.out
new file mode 100644
index 0000000..1e3810e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 1 0 0 
+process 2 binding: 0 0 1 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 1 0 0 
+process 6 binding: 0 0 1 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 1 0 0 
+process 10 binding: 0 0 1 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 1 0 0 
+process 14 binding: 0 0 1 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread:8.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.numa.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.socket.out
new file mode 100644
index 0000000..f5876e1
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo3.socket.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 0 0 0 0 0 0 
+process 1 binding: 0 0 1 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 1 0 0 
+process 3 binding: 0 0 0 0 0 0 1 1 
+process 4 binding: 1 1 0 0 0 0 0 0 
+process 5 binding: 0 0 1 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 1 0 0 
+process 7 binding: 0 0 0 0 0 0 1 1 
+process 8 binding: 1 1 0 0 0 0 0 0 
+process 9 binding: 0 0 1 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 1 0 0 
+process 11 binding: 0 0 0 0 0 0 1 1 
+process 12 binding: 1 1 0 0 0 0 0 0 
+process 13 binding: 0 0 1 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 1 0 0 
+process 15 binding: 0 0 0 0 0 0 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.board.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.board.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.board.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.core.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.board.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.core:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.board.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.core:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread:8.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.board.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.numa.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.board.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.socket.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.board.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.board.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.core.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.core:2.out
new file mode 100644
index 0000000..6ab904f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.core:4.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread:2.out
new file mode 100644
index 0000000..6ab904f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread:4.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread:8.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.numa.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.socket.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.board.out
new file mode 100644
index 0000000..a6bf2e4
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 1 0 
+process 2 binding: 0 1 0 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 0 1 0 
+process 6 binding: 0 1 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 1 0 
+process 10 binding: 0 1 0 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 0 1 0 
+process 14 binding: 0 1 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.core.out
new file mode 100644
index 0000000..03e44c6
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 0 1 0 1 0 0 0 
+process 2 binding: 0 0 0 0 1 0 1 0 
+process 3 binding: 0 1 0 0 0 0 1 0 
+process 4 binding: 0 1 0 1 0 0 0 0 
+process 5 binding: 0 0 0 1 0 1 0 0 
+process 6 binding: 0 0 0 0 0 1 0 1 
+process 7 binding: 1 0 0 0 0 0 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 0 1 0 1 0 0 0 
+process 10 binding: 0 0 0 0 1 0 1 0 
+process 11 binding: 0 1 0 0 0 0 1 0 
+process 12 binding: 0 1 0 1 0 0 0 0 
+process 13 binding: 0 0 0 1 0 1 0 0 
+process 14 binding: 0 0 0 0 0 1 0 1 
+process 15 binding: 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.core:2.out
new file mode 100644
index 0000000..a6bf2e4
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 1 0 
+process 2 binding: 0 1 0 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 0 1 0 
+process 6 binding: 0 1 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 1 0 
+process 10 binding: 0 1 0 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 0 1 0 
+process 14 binding: 0 1 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.core:4.out
new file mode 100644
index 0000000..08a3c94
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 1 0 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 1 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 1 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 0 1 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 1 0 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 1 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 1 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 0 1 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread.out
new file mode 100644
index 0000000..03e44c6
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 0 1 0 1 0 0 0 
+process 2 binding: 0 0 0 0 1 0 1 0 
+process 3 binding: 0 1 0 0 0 0 1 0 
+process 4 binding: 0 1 0 1 0 0 0 0 
+process 5 binding: 0 0 0 1 0 1 0 0 
+process 6 binding: 0 0 0 0 0 1 0 1 
+process 7 binding: 1 0 0 0 0 0 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 0 1 0 1 0 0 0 
+process 10 binding: 0 0 0 0 1 0 1 0 
+process 11 binding: 0 1 0 0 0 0 1 0 
+process 12 binding: 0 1 0 1 0 0 0 0 
+process 13 binding: 0 0 0 1 0 1 0 0 
+process 14 binding: 0 0 0 0 0 1 0 1 
+process 15 binding: 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread:2.out
new file mode 100644
index 0000000..a6bf2e4
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 1 0 
+process 2 binding: 0 1 0 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 0 1 0 
+process 6 binding: 0 1 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 1 0 
+process 10 binding: 0 1 0 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 0 1 0 
+process 14 binding: 0 1 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread:4.out
new file mode 100644
index 0000000..08a3c94
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 1 0 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 1 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 1 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 0 1 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 1 0 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 1 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 1 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 0 1 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread:8.out
new file mode 100644
index 0000000..a6bf2e4
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 1 0 
+process 2 binding: 0 1 0 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 0 1 0 
+process 6 binding: 0 1 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 1 0 
+process 10 binding: 0 1 0 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 0 1 0 
+process 14 binding: 0 1 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.numa.out
new file mode 100644
index 0000000..a6bf2e4
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 1 0 
+process 2 binding: 0 1 0 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 0 1 0 
+process 6 binding: 0 1 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 1 0 
+process 10 binding: 0 1 0 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 0 1 0 
+process 14 binding: 0 1 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.socket.out
new file mode 100644
index 0000000..08a3c94
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 1 0 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 1 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 1 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 0 1 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 1 0 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 1 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 1 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 0 1 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.board.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.core.out
new file mode 100644
index 0000000..04289b2
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 1 0 1 0 1 0 
+process 2 binding: 0 1 0 1 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 1 0 
+process 4 binding: 0 1 0 1 0 1 0 1 
+process 5 binding: 1 0 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 0 1 0 1 
+process 7 binding: 1 0 1 0 1 0 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 1 0 1 0 1 0 
+process 10 binding: 0 1 0 1 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 1 0 
+process 12 binding: 0 1 0 1 0 1 0 1 
+process 13 binding: 1 0 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 0 1 0 1 
+process 15 binding: 1 0 1 0 1 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.core:2.out
new file mode 100644
index 0000000..338dd81
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 1 0 1 0 
+process 2 binding: 0 1 0 1 0 1 0 1 
+process 3 binding: 1 0 1 0 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 1 0 1 0 
+process 6 binding: 0 1 0 1 0 1 0 1 
+process 7 binding: 1 0 1 0 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 1 0 1 0 
+process 10 binding: 0 1 0 1 0 1 0 1 
+process 11 binding: 1 0 1 0 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 1 0 1 0 
+process 14 binding: 0 1 0 1 0 1 0 1 
+process 15 binding: 1 0 1 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.core:4.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread.out
new file mode 100644
index 0000000..04289b2
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 1 0 1 0 1 0 
+process 2 binding: 0 1 0 1 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 1 0 
+process 4 binding: 0 1 0 1 0 1 0 1 
+process 5 binding: 1 0 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 0 1 0 1 
+process 7 binding: 1 0 1 0 1 0 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 1 0 1 0 1 0 
+process 10 binding: 0 1 0 1 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 1 0 
+process 12 binding: 0 1 0 1 0 1 0 1 
+process 13 binding: 1 0 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 0 1 0 1 
+process 15 binding: 1 0 1 0 1 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread:2.out
new file mode 100644
index 0000000..338dd81
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 1 0 1 0 
+process 2 binding: 0 1 0 1 0 1 0 1 
+process 3 binding: 1 0 1 0 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 1 0 1 0 
+process 6 binding: 0 1 0 1 0 1 0 1 
+process 7 binding: 1 0 1 0 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 1 0 1 0 
+process 10 binding: 0 1 0 1 0 1 0 1 
+process 11 binding: 1 0 1 0 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 1 0 1 0 
+process 14 binding: 0 1 0 1 0 1 0 1 
+process 15 binding: 1 0 1 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread:4.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread:8.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.numa.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.socket.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.board.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.core.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.core:2.out
new file mode 100644
index 0000000..6ab904f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.core:4.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread:2.out
new file mode 100644
index 0000000..6ab904f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 0 0 
+process 2 binding: 0 1 0 0 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 0 
+process 4 binding: 0 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 0 0 1 0 
+process 6 binding: 0 0 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 0 0 
+process 10 binding: 0 1 0 0 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 0 
+process 12 binding: 0 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 0 0 1 0 
+process 14 binding: 0 0 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread:4.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread:8.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.numa.out
new file mode 100644
index 0000000..f9ac915
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 0 1 0 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 0 0 
+process 3 binding: 0 0 0 0 0 0 1 0 
+process 4 binding: 0 1 0 0 0 0 0 0 
+process 5 binding: 0 0 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 0 1 0 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 0 1 0 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 0 0 
+process 11 binding: 0 0 0 0 0 0 1 0 
+process 12 binding: 0 1 0 0 0 0 0 0 
+process 13 binding: 0 0 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 0 1 0 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.socket.out
new file mode 100644
index 0000000..8212b98
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 0 0 0 0 0 0 
+process 1 binding: 0 1 0 0 0 0 0 0 
+process 2 binding: 0 0 1 0 0 0 0 0 
+process 3 binding: 0 0 0 1 0 0 0 0 
+process 4 binding: 0 0 0 0 1 0 0 0 
+process 5 binding: 0 0 0 0 0 1 0 0 
+process 6 binding: 0 0 0 0 0 0 1 0 
+process 7 binding: 0 0 0 0 0 0 0 1 
+process 8 binding: 1 0 0 0 0 0 0 0 
+process 9 binding: 0 1 0 0 0 0 0 0 
+process 10 binding: 0 0 1 0 0 0 0 0 
+process 11 binding: 0 0 0 1 0 0 0 0 
+process 12 binding: 0 0 0 0 1 0 0 0 
+process 13 binding: 0 0 0 0 0 1 0 0 
+process 14 binding: 0 0 0 0 0 0 1 0 
+process 15 binding: 0 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.board.out
new file mode 100644
index 0000000..a6bf2e4
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 1 0 
+process 2 binding: 0 1 0 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 0 1 0 
+process 6 binding: 0 1 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 1 0 
+process 10 binding: 0 1 0 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 0 1 0 
+process 14 binding: 0 1 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.core.out
new file mode 100644
index 0000000..03e44c6
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 0 1 0 1 0 0 0 
+process 2 binding: 0 0 0 0 1 0 1 0 
+process 3 binding: 0 1 0 0 0 0 1 0 
+process 4 binding: 0 1 0 1 0 0 0 0 
+process 5 binding: 0 0 0 1 0 1 0 0 
+process 6 binding: 0 0 0 0 0 1 0 1 
+process 7 binding: 1 0 0 0 0 0 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 0 1 0 1 0 0 0 
+process 10 binding: 0 0 0 0 1 0 1 0 
+process 11 binding: 0 1 0 0 0 0 1 0 
+process 12 binding: 0 1 0 1 0 0 0 0 
+process 13 binding: 0 0 0 1 0 1 0 0 
+process 14 binding: 0 0 0 0 0 1 0 1 
+process 15 binding: 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.core:2.out
new file mode 100644
index 0000000..a6bf2e4
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 1 0 
+process 2 binding: 0 1 0 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 0 1 0 
+process 6 binding: 0 1 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 1 0 
+process 10 binding: 0 1 0 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 0 1 0 
+process 14 binding: 0 1 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.core:4.out
new file mode 100644
index 0000000..08a3c94
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 1 0 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 1 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 1 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 0 1 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 1 0 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 1 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 1 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 0 1 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread.out
new file mode 100644
index 0000000..03e44c6
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 0 1 0 1 0 0 0 
+process 2 binding: 0 0 0 0 1 0 1 0 
+process 3 binding: 0 1 0 0 0 0 1 0 
+process 4 binding: 0 1 0 1 0 0 0 0 
+process 5 binding: 0 0 0 1 0 1 0 0 
+process 6 binding: 0 0 0 0 0 1 0 1 
+process 7 binding: 1 0 0 0 0 0 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 0 1 0 1 0 0 0 
+process 10 binding: 0 0 0 0 1 0 1 0 
+process 11 binding: 0 1 0 0 0 0 1 0 
+process 12 binding: 0 1 0 1 0 0 0 0 
+process 13 binding: 0 0 0 1 0 1 0 0 
+process 14 binding: 0 0 0 0 0 1 0 1 
+process 15 binding: 1 0 0 0 0 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread:2.out
new file mode 100644
index 0000000..a6bf2e4
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 1 0 
+process 2 binding: 0 1 0 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 0 1 0 
+process 6 binding: 0 1 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 1 0 
+process 10 binding: 0 1 0 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 0 1 0 
+process 14 binding: 0 1 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread:4.out
new file mode 100644
index 0000000..08a3c94
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 1 0 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 1 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 1 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 0 1 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 1 0 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 1 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 1 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 0 1 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread:8.out
new file mode 100644
index 0000000..a6bf2e4
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 1 0 
+process 2 binding: 0 1 0 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 0 1 0 
+process 6 binding: 0 1 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 1 0 
+process 10 binding: 0 1 0 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 0 1 0 
+process 14 binding: 0 1 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.numa.out
new file mode 100644
index 0000000..a6bf2e4
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 0 0 0 1 0 1 0 
+process 2 binding: 0 1 0 1 0 0 0 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 0 0 0 1 0 1 0 
+process 6 binding: 0 1 0 1 0 0 0 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 0 0 0 1 0 1 0 
+process 10 binding: 0 1 0 1 0 0 0 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 0 0 0 1 0 1 0 
+process 14 binding: 0 1 0 1 0 0 0 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.socket.out
new file mode 100644
index 0000000..08a3c94
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 0 0 0 0 
+process 1 binding: 0 1 0 1 0 0 0 0 
+process 2 binding: 0 0 0 0 1 0 1 0 
+process 3 binding: 0 0 0 0 0 1 0 1 
+process 4 binding: 1 0 1 0 0 0 0 0 
+process 5 binding: 0 1 0 1 0 0 0 0 
+process 6 binding: 0 0 0 0 1 0 1 0 
+process 7 binding: 0 0 0 0 0 1 0 1 
+process 8 binding: 1 0 1 0 0 0 0 0 
+process 9 binding: 0 1 0 1 0 0 0 0 
+process 10 binding: 0 0 0 0 1 0 1 0 
+process 11 binding: 0 0 0 0 0 1 0 1 
+process 12 binding: 1 0 1 0 0 0 0 0 
+process 13 binding: 0 1 0 1 0 0 0 0 
+process 14 binding: 0 0 0 0 1 0 1 0 
+process 15 binding: 0 0 0 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.board.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.core.out
new file mode 100644
index 0000000..04289b2
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 1 0 1 0 1 0 
+process 2 binding: 0 1 0 1 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 1 0 
+process 4 binding: 0 1 0 1 0 1 0 1 
+process 5 binding: 1 0 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 0 1 0 1 
+process 7 binding: 1 0 1 0 1 0 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 1 0 1 0 1 0 
+process 10 binding: 0 1 0 1 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 1 0 
+process 12 binding: 0 1 0 1 0 1 0 1 
+process 13 binding: 1 0 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 0 1 0 1 
+process 15 binding: 1 0 1 0 1 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.core:2.out
new file mode 100644
index 0000000..338dd81
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 1 0 1 0 
+process 2 binding: 0 1 0 1 0 1 0 1 
+process 3 binding: 1 0 1 0 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 1 0 1 0 
+process 6 binding: 0 1 0 1 0 1 0 1 
+process 7 binding: 1 0 1 0 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 1 0 1 0 
+process 10 binding: 0 1 0 1 0 1 0 1 
+process 11 binding: 1 0 1 0 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 1 0 1 0 
+process 14 binding: 0 1 0 1 0 1 0 1 
+process 15 binding: 1 0 1 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.core:4.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread.out
new file mode 100644
index 0000000..04289b2
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 1 0 1 0 1 0 
+process 2 binding: 0 1 0 1 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 1 0 
+process 4 binding: 0 1 0 1 0 1 0 1 
+process 5 binding: 1 0 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 0 1 0 1 
+process 7 binding: 1 0 1 0 1 0 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 1 0 1 0 1 0 
+process 10 binding: 0 1 0 1 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 1 0 
+process 12 binding: 0 1 0 1 0 1 0 1 
+process 13 binding: 1 0 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 0 1 0 1 
+process 15 binding: 1 0 1 0 1 0 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread:2.out
new file mode 100644
index 0000000..338dd81
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 1 0 1 0 
+process 2 binding: 0 1 0 1 0 1 0 1 
+process 3 binding: 1 0 1 0 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 1 0 1 0 
+process 6 binding: 0 1 0 1 0 1 0 1 
+process 7 binding: 1 0 1 0 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 1 0 1 0 
+process 10 binding: 0 1 0 1 0 1 0 1 
+process 11 binding: 1 0 1 0 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 1 0 1 0 
+process 14 binding: 0 1 0 1 0 1 0 1 
+process 15 binding: 1 0 1 0 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread:4.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread:8.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.numa.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.socket.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.board.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.core.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.core:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.core:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread:8.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.numa.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.socket.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.board.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.core.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.core:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.core:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread:2.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread:4.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread:8.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.numa.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.socket.out
new file mode 100644
index 0000000..6fbbe47
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.numa.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 1 1 1 1 1 1 1 
+process 1 binding: 1 1 1 1 1 1 1 1 
+process 2 binding: 1 1 1 1 1 1 1 1 
+process 3 binding: 1 1 1 1 1 1 1 1 
+process 4 binding: 1 1 1 1 1 1 1 1 
+process 5 binding: 1 1 1 1 1 1 1 1 
+process 6 binding: 1 1 1 1 1 1 1 1 
+process 7 binding: 1 1 1 1 1 1 1 1 
+process 8 binding: 1 1 1 1 1 1 1 1 
+process 9 binding: 1 1 1 1 1 1 1 1 
+process 10 binding: 1 1 1 1 1 1 1 1 
+process 11 binding: 1 1 1 1 1 1 1 1 
+process 12 binding: 1 1 1 1 1 1 1 1 
+process 13 binding: 1 1 1 1 1 1 1 1 
+process 14 binding: 1 1 1 1 1 1 1 1 
+process 15 binding: 1 1 1 1 1 1 1 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.board.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.board.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.board.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.core.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.core.out
new file mode 100644
index 0000000..9f36647
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.core.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 1 0 1 0 1 0 1 0 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 1 0 1 0 1 0 1 0 
+process 4 binding: 0 1 0 1 0 1 0 1 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 0 1 0 1 0 1 0 1 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 1 0 1 0 1 0 1 0 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 1 0 1 0 1 0 1 0 
+process 12 binding: 0 1 0 1 0 1 0 1 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 0 1 0 1 0 1 0 1 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.core:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.core:2.out
new file mode 100644
index 0000000..793a69e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.core:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 1 0 1 0 1 0 1 0 
+process 2 binding: 0 1 0 1 0 1 0 1 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 1 0 1 0 1 0 1 0 
+process 6 binding: 0 1 0 1 0 1 0 1 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 1 0 1 0 1 0 1 0 
+process 10 binding: 0 1 0 1 0 1 0 1 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 1 0 1 0 1 0 1 0 
+process 14 binding: 0 1 0 1 0 1 0 1 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.core:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.core:4.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.core:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread.out
new file mode 100644
index 0000000..9f36647
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 1 0 1 0 1 0 1 0 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 1 0 1 0 1 0 1 0 
+process 4 binding: 0 1 0 1 0 1 0 1 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 0 1 0 1 0 1 0 1 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 1 0 1 0 1 0 1 0 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 1 0 1 0 1 0 1 0 
+process 12 binding: 0 1 0 1 0 1 0 1 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 0 1 0 1 0 1 0 1 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread:2.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread:2.out
new file mode 100644
index 0000000..793a69e
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread:2.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 1 0 1 0 1 0 1 0 
+process 2 binding: 0 1 0 1 0 1 0 1 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 1 0 1 0 1 0 1 0 
+process 6 binding: 0 1 0 1 0 1 0 1 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 1 0 1 0 1 0 1 0 
+process 10 binding: 0 1 0 1 0 1 0 1 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 1 0 1 0 1 0 1 0 
+process 14 binding: 0 1 0 1 0 1 0 1 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread:4.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread:4.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread:4.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread:8.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread:8.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread:8.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.numa.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.numa.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.numa.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.socket.out b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.socket.out
new file mode 100644
index 0000000..c97689f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/expected.topo4.socket.socket.out
@@ -0,0 +1,16 @@
+process 0 binding: 1 0 1 0 1 0 1 0 
+process 1 binding: 0 1 0 1 0 1 0 1 
+process 2 binding: 1 0 1 0 1 0 1 0 
+process 3 binding: 0 1 0 1 0 1 0 1 
+process 4 binding: 1 0 1 0 1 0 1 0 
+process 5 binding: 0 1 0 1 0 1 0 1 
+process 6 binding: 1 0 1 0 1 0 1 0 
+process 7 binding: 0 1 0 1 0 1 0 1 
+process 8 binding: 1 0 1 0 1 0 1 0 
+process 9 binding: 0 1 0 1 0 1 0 1 
+process 10 binding: 1 0 1 0 1 0 1 0 
+process 11 binding: 0 1 0 1 0 1 0 1 
+process 12 binding: 1 0 1 0 1 0 1 0 
+process 13 binding: 0 1 0 1 0 1 0 1 
+process 14 binding: 1 0 1 0 1 0 1 0 
+process 15 binding: 0 1 0 1 0 1 0 1 
diff --git a/test/mpi/impls/hydra/binding_reference/topo1.xml b/test/mpi/impls/hydra/binding_reference/topo1.xml
new file mode 100644
index 0000000..82a4402
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/topo1.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE topology SYSTEM "hwloc.dtd">
+<topology>
+  <object type="Machine" os_index="0" cpuset="0x000000ff" complete_cpuset="0x0000ffff" online_cpuset="0x0000ffff" allowed_cpuset="0x0000ffff" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001">
+    <info name="CPUModel" value="Intel(R) Core(TM) i7-4960HQ CPU @ 2.60GHz"/>
+    <info name="Backend" value="Darwin"/>
+    <info name="OSName" value="Darwin"/>
+    <info name="OSRelease" value="13.0.2"/>
+    <info name="OSVersion" value="Darwin Kernel Version 13.0.2: Sun Sep 29 19:38:57 PDT 2013; root:xnu-2422.75.4~1/RELEASE_X86_64"/>
+    <info name="HostName" value="snowflake.local"/>
+    <info name="Architecture" value="x86_64"/>
+    <info name="Backend" value="x86"/>
+    <object type="NUMANode" os_index="0" cpuset="0x000000ff" complete_cpuset="0x000000ff" online_cpuset="0x000000ff" allowed_cpuset="0x000000ff" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" local_memory="17179869184">
+      <page_type size="4096" count="0"/>
+      <object type="Cache" os_index="0" cpuset="0x000000ff" complete_cpuset="0x000000ff" online_cpuset="0x000000ff" allowed_cpuset="0x000000ff" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="6291456" depth="3" cache_linesize="64" cache_associativity="0" cache_type="0">
+        <object type="Cache" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="262144" depth="2" cache_linesize="64" cache_associativity="8" cache_type="0">
+          <object type="Cache" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="0" cache_type="1">
+            <object type="Cache" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="0" cache_type="2">
+              <object type="Core" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001">
+                <object type="PU" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+                <object type="PU" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+              </object>
+            </object>
+          </object>
+        </object>
+        <object type="Cache" os_index="1" cpuset="0x0000000c" complete_cpuset="0x0000000c" online_cpuset="0x0000000c" allowed_cpuset="0x0000000c" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="262144" depth="2" cache_linesize="64" cache_associativity="8" cache_type="0">
+          <object type="Cache" os_index="1" cpuset="0x0000000c" complete_cpuset="0x0000000c" online_cpuset="0x0000000c" allowed_cpuset="0x0000000c" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="0" cache_type="1">
+            <object type="Cache" os_index="1" cpuset="0x0000000c" complete_cpuset="0x0000000c" online_cpuset="0x0000000c" allowed_cpuset="0x0000000c" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="0" cache_type="2">
+              <object type="Core" os_index="1" cpuset="0x0000000c" complete_cpuset="0x0000000c" online_cpuset="0x0000000c" allowed_cpuset="0x0000000c" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001">
+                <object type="PU" os_index="2" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+                <object type="PU" os_index="3" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+              </object>
+            </object>
+          </object>
+        </object>
+        <object type="Cache" os_index="2" cpuset="0x00000030" complete_cpuset="0x00000030" online_cpuset="0x00000030" allowed_cpuset="0x00000030" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="262144" depth="2" cache_linesize="64" cache_associativity="8" cache_type="0">
+          <object type="Cache" os_index="2" cpuset="0x00000030" complete_cpuset="0x00000030" online_cpuset="0x00000030" allowed_cpuset="0x00000030" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="0" cache_type="1">
+            <object type="Cache" os_index="2" cpuset="0x00000030" complete_cpuset="0x00000030" online_cpuset="0x00000030" allowed_cpuset="0x00000030" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="0" cache_type="2">
+              <object type="Core" os_index="2" cpuset="0x00000030" complete_cpuset="0x00000030" online_cpuset="0x00000030" allowed_cpuset="0x00000030" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001">
+                <object type="PU" os_index="4" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+                <object type="PU" os_index="5" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+              </object>
+            </object>
+          </object>
+        </object>
+        <object type="Cache" os_index="3" cpuset="0x000000c0" complete_cpuset="0x000000c0" online_cpuset="0x000000c0" allowed_cpuset="0x000000c0" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="262144" depth="2" cache_linesize="64" cache_associativity="8" cache_type="0">
+          <object type="Cache" os_index="3" cpuset="0x000000c0" complete_cpuset="0x000000c0" online_cpuset="0x000000c0" allowed_cpuset="0x000000c0" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="0" cache_type="1">
+            <object type="Cache" os_index="3" cpuset="0x000000c0" complete_cpuset="0x000000c0" online_cpuset="0x000000c0" allowed_cpuset="0x000000c0" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="0" cache_type="2">
+              <object type="Core" os_index="3" cpuset="0x000000c0" complete_cpuset="0x000000c0" online_cpuset="0x000000c0" allowed_cpuset="0x000000c0" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001">
+                <object type="PU" os_index="6" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+                <object type="PU" os_index="7" cpuset="0x00000080" complete_cpuset="0x00000080" online_cpuset="0x00000080" allowed_cpuset="0x00000080" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+              </object>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+  </object>
+</topology>
diff --git a/test/mpi/impls/hydra/binding_reference/topo2.xml b/test/mpi/impls/hydra/binding_reference/topo2.xml
new file mode 100644
index 0000000..c61aff8
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/topo2.xml
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE topology SYSTEM "hwloc.dtd">
+<topology>
+  <object type="Machine" os_level="-1" os_index="0" cpuset="0x0000ffff" complete_cpuset="0x0000ffff" online_cpuset="0x0000ffff" allowed_cpuset="0x0000ffff" nodeset="0x00000003" complete_nodeset="0x00000003" allowed_nodeset="0x00000003">
+    <page_type size="4096" count="0"/>
+    <page_type size="2097152" count="0"/>
+    <info name="DMIProductName" value="X8DTU"/>
+    <info name="DMIProductVersion" value="1234567890"/>
+    <info name="DMIBoardVendor" value="Supermicro"/>
+    <info name="DMIBoardName" value="X8DTU"/>
+    <info name="DMIBoardVersion" value="1234567890"/>
+    <info name="DMIBoardAssetTag" value="To Be Filled By O.E.M."/>
+    <info name="DMIChassisVendor" value="Supermicro"/>
+    <info name="DMIChassisType" value="17"/>
+    <info name="DMIChassisVersion" value="1234567890"/>
+    <info name="DMIChassisAssetTag" value="To Be Filled By O.E.M."/>
+    <info name="DMIBIOSVendor" value="American Megatrends Inc."/>
+    <info name="DMIBIOSVersion" value="1.1    "/>
+    <info name="DMIBIOSDate" value="10/05/2009"/>
+    <info name="DMISysVendor" value="Supermicro"/>
+    <info name="Backend" value="Linux"/>
+    <info name="OSName" value="Linux"/>
+    <info name="OSRelease" value="3.5.0-30-generic"/>
+    <info name="OSVersion" value="#51~precise1-Ubuntu SMP Wed May 15 08:48:19 UTC 2013"/>
+    <info name="HostName" value="stomp"/>
+    <info name="Architecture" value="x86_64"/>
+    <distances nbobjs="2" relative_depth="1" latency_base="10.000000">
+      <latency value="1.000000"/>
+      <latency value="2.000000"/>
+      <latency value="2.000000"/>
+      <latency value="1.000000"/>
+    </distances>
+    <object type="NUMANode" os_level="-1" os_index="0" cpuset="0x00000f0f" complete_cpuset="0x00000f0f" online_cpuset="0x00000f0f" allowed_cpuset="0x00000f0f" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" local_memory="12875501568">
+      <page_type size="4096" count="3143433"/>
+      <page_type size="2097152" count="0"/>
+      <object type="Socket" os_level="-1" os_index="0" cpuset="0x00000f0f" complete_cpuset="0x00000f0f" online_cpuset="0x00000f0f" allowed_cpuset="0x00000f0f" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001">
+        <object type="Cache" os_level="-1" cpuset="0x00000f0f" complete_cpuset="0x00000f0f" online_cpuset="0x00000f0f" allowed_cpuset="0x00000f0f" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="8388608" depth="3" cache_linesize="64" cache_associativity="16">
+          <object type="Cache" os_level="-1" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="262144" depth="2" cache_linesize="64" cache_associativity="8">
+            <object type="Cache" os_level="-1" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+              <object type="Core" os_level="-1" os_index="0" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001">
+                <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+                <object type="PU" os_level="-1" os_index="8" cpuset="0x00000100" complete_cpuset="0x00000100" online_cpuset="0x00000100" allowed_cpuset="0x00000100" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+              </object>
+            </object>
+          </object>
+          <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="262144" depth="2" cache_linesize="64" cache_associativity="8">
+            <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+              <object type="Core" os_level="-1" os_index="1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001">
+                <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+                <object type="PU" os_level="-1" os_index="9" cpuset="0x00000200" complete_cpuset="0x00000200" online_cpuset="0x00000200" allowed_cpuset="0x00000200" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+              </object>
+            </object>
+          </object>
+          <object type="Cache" os_level="-1" cpuset="0x00000404" complete_cpuset="0x00000404" online_cpuset="0x00000404" allowed_cpuset="0x00000404" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="262144" depth="2" cache_linesize="64" cache_associativity="8">
+            <object type="Cache" os_level="-1" cpuset="0x00000404" complete_cpuset="0x00000404" online_cpuset="0x00000404" allowed_cpuset="0x00000404" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+              <object type="Core" os_level="-1" os_index="2" cpuset="0x00000404" complete_cpuset="0x00000404" online_cpuset="0x00000404" allowed_cpuset="0x00000404" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001">
+                <object type="PU" os_level="-1" os_index="2" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+                <object type="PU" os_level="-1" os_index="10" cpuset="0x00000400" complete_cpuset="0x00000400" online_cpuset="0x00000400" allowed_cpuset="0x00000400" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+              </object>
+            </object>
+          </object>
+          <object type="Cache" os_level="-1" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="262144" depth="2" cache_linesize="64" cache_associativity="8">
+            <object type="Cache" os_level="-1" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+              <object type="Core" os_level="-1" os_index="3" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001">
+                <object type="PU" os_level="-1" os_index="3" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+                <object type="PU" os_level="-1" os_index="11" cpuset="0x00000800" complete_cpuset="0x00000800" online_cpuset="0x00000800" allowed_cpuset="0x00000800" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+              </object>
+            </object>
+          </object>
+        </object>
+      </object>
+      <object type="Bridge" os_level="-1" os_index="0" bridge_type="0-1" depth="0" bridge_pci="0000:[00-07]">
+        <object type="Bridge" os_level="-1" os_index="16" name="Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 1" bridge_type="1-1" depth="0" bridge_pci="0000:[01-01]" pci_busid="0000:00:01.0" pci_type="0604 [8086:3408] [0000:0000] 13" pci_link_speed="0.000000">
+          <info name="PCIVendor" value="Intel Corporation"/>
+          <info name="PCIDevice" value="5520/5500/X58 I/O Hub PCI Express Root Port 1"/>
+          <object type="PCIDev" os_level="-1" os_index="4096" name="Intel Corporation 82576 Gigabit Network Connection" pci_busid="0000:01:00.0" pci_type="0200 [8086:10c9] [00d9:0000] 01" pci_link_speed="0.000000">
+            <info name="PCIVendor" value="Intel Corporation"/>
+            <info name="PCIDevice" value="82576 Gigabit Network Connection"/>
+            <object type="OSDev" os_level="-1" name="eth0" osdev_type="2">
+              <info name="Address" value="00:30:48:df:bc:42"/>
+            </object>
+          </object>
+          <object type="PCIDev" os_level="-1" os_index="4097" name="Intel Corporation 82576 Gigabit Network Connection" pci_busid="0000:01:00.1" pci_type="0200 [8086:10c9] [00d9:0000] 01" pci_link_speed="0.000000">
+            <info name="PCIVendor" value="Intel Corporation"/>
+            <info name="PCIDevice" value="82576 Gigabit Network Connection"/>
+            <object type="OSDev" os_level="-1" name="eth1" osdev_type="2">
+              <info name="Address" value="00:30:48:df:bc:43"/>
+            </object>
+          </object>
+        </object>
+        <object type="Bridge" os_level="-1" os_index="480" name="Intel Corporation 82801 PCI Bridge" bridge_type="1-1" depth="0" bridge_pci="0000:[07-07]" pci_busid="0000:00:1e.0" pci_type="0604 [8086:244e] [0000:0000] 90" pci_link_speed="0.000000">
+          <info name="PCIVendor" value="Intel Corporation"/>
+          <info name="PCIDevice" value="82801 PCI Bridge"/>
+          <object type="PCIDev" os_level="-1" os_index="28688" name="Matrox Electronics Systems Ltd. MGA G200eW WPCM450" pci_busid="0000:07:01.0" pci_type="0300 [102b:0532] [00d9:0000] 0a" pci_link_speed="0.000000">
+            <info name="PCIVendor" value="Matrox Electronics Systems Ltd."/>
+            <info name="PCIDevice" value="MGA G200eW WPCM450"/>
+          </object>
+        </object>
+        <object type="PCIDev" os_level="-1" os_index="498" name="Intel Corporation 82801JI (ICH10 Family) 4 port SATA IDE Controller #1" pci_busid="0000:00:1f.2" pci_type="0101 [8086:3a20] [00d9:0000] 00" pci_link_speed="0.000000">
+          <info name="PCIVendor" value="Intel Corporation"/>
+          <info name="PCIDevice" value="82801JI (ICH10 Family) 4 port SATA IDE Controller #1"/>
+        </object>
+        <object type="PCIDev" os_level="-1" os_index="501" name="Intel Corporation 82801JI (ICH10 Family) 2 port SATA IDE Controller #2" pci_busid="0000:00:1f.5" pci_type="0101 [8086:3a26] [00d9:0000] 00" pci_link_speed="0.000000">
+          <info name="PCIVendor" value="Intel Corporation"/>
+          <info name="PCIDevice" value="82801JI (ICH10 Family) 2 port SATA IDE Controller #2"/>
+        </object>
+      </object>
+    </object>
+    <object type="NUMANode" os_level="-1" os_index="1" cpuset="0x0000f0f0" complete_cpuset="0x0000f0f0" online_cpuset="0x0000f0f0" allowed_cpuset="0x0000f0f0" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" local_memory="12884901888">
+      <page_type size="4096" count="3145728"/>
+      <page_type size="2097152" count="0"/>
+      <object type="Socket" os_level="-1" os_index="1" cpuset="0x0000f0f0" complete_cpuset="0x0000f0f0" online_cpuset="0x0000f0f0" allowed_cpuset="0x0000f0f0" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002">
+        <object type="Cache" os_level="-1" cpuset="0x0000f0f0" complete_cpuset="0x0000f0f0" online_cpuset="0x0000f0f0" allowed_cpuset="0x0000f0f0" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="8388608" depth="3" cache_linesize="64" cache_associativity="16">
+          <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="262144" depth="2" cache_linesize="64" cache_associativity="8">
+            <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+              <object type="Core" os_level="-1" os_index="0" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002">
+                <object type="PU" os_level="-1" os_index="4" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002"/>
+                <object type="PU" os_level="-1" os_index="12" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002"/>
+              </object>
+            </object>
+          </object>
+          <object type="Cache" os_level="-1" cpuset="0x00002020" complete_cpuset="0x00002020" online_cpuset="0x00002020" allowed_cpuset="0x00002020" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="262144" depth="2" cache_linesize="64" cache_associativity="8">
+            <object type="Cache" os_level="-1" cpuset="0x00002020" complete_cpuset="0x00002020" online_cpuset="0x00002020" allowed_cpuset="0x00002020" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+              <object type="Core" os_level="-1" os_index="1" cpuset="0x00002020" complete_cpuset="0x00002020" online_cpuset="0x00002020" allowed_cpuset="0x00002020" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002">
+                <object type="PU" os_level="-1" os_index="5" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002"/>
+                <object type="PU" os_level="-1" os_index="13" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002"/>
+              </object>
+            </object>
+          </object>
+          <object type="Cache" os_level="-1" cpuset="0x00004040" complete_cpuset="0x00004040" online_cpuset="0x00004040" allowed_cpuset="0x00004040" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="262144" depth="2" cache_linesize="64" cache_associativity="8">
+            <object type="Cache" os_level="-1" cpuset="0x00004040" complete_cpuset="0x00004040" online_cpuset="0x00004040" allowed_cpuset="0x00004040" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+              <object type="Core" os_level="-1" os_index="2" cpuset="0x00004040" complete_cpuset="0x00004040" online_cpuset="0x00004040" allowed_cpuset="0x00004040" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002">
+                <object type="PU" os_level="-1" os_index="6" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002"/>
+                <object type="PU" os_level="-1" os_index="14" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002"/>
+              </object>
+            </object>
+          </object>
+          <object type="Cache" os_level="-1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="262144" depth="2" cache_linesize="64" cache_associativity="8">
+            <object type="Cache" os_level="-1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+              <object type="Core" os_level="-1" os_index="3" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002">
+                <object type="PU" os_level="-1" os_index="7" cpuset="0x00000080" complete_cpuset="0x00000080" online_cpuset="0x00000080" allowed_cpuset="0x00000080" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002"/>
+                <object type="PU" os_level="-1" os_index="15" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002"/>
+              </object>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+  </object>
+</topology>
diff --git a/test/mpi/impls/hydra/binding_reference/topo3.xml b/test/mpi/impls/hydra/binding_reference/topo3.xml
new file mode 100644
index 0000000..8792484
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/topo3.xml
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE topology SYSTEM "hwloc.dtd">
+<topology>
+  <object type="Machine" os_level="-1" os_index="0" cpuset="0x000000ff" complete_cpuset="0x000000ff" online_cpuset="0x000000ff" allowed_cpuset="0x000000ff" local_memory="8467828736">
+    <page_type size="4096" count="2067341"/>
+    <page_type size="2097152" count="0"/>
+    <info name="DMIProductName" value="H8QM8"/>
+    <info name="DMIProductVersion" value="1234567890"/>
+    <info name="DMIBoardVendor" value="Supermicro"/>
+    <info name="DMIBoardName" value="H8QM8"/>
+    <info name="DMIBoardVersion" value="1234567890"/>
+    <info name="DMIBoardAssetTag" value="To Be Filled By O.E.M."/>
+    <info name="DMIChassisVendor" value="To Be Filled By O.E.M."/>
+    <info name="DMIChassisType" value="3"/>
+    <info name="DMIChassisVersion" value="To Be Filled By O.E.M."/>
+    <info name="DMIChassisAssetTag" value="To Be Filled By O.E.M."/>
+    <info name="DMIBIOSVendor" value="American Megatrends Inc."/>
+    <info name="DMIBIOSVersion" value="080014 "/>
+    <info name="DMIBIOSDate" value="08/21/2006"/>
+    <info name="DMISysVendor" value="Supermicro"/>
+    <info name="Backend" value="Linux"/>
+    <info name="OSName" value="Linux"/>
+    <info name="OSRelease" value="3.2.0-31-generic-pae"/>
+    <info name="OSVersion" value="#50-Ubuntu SMP Fri Sep 7 16:39:45 UTC 2012"/>
+    <info name="HostName" value="octopus"/>
+    <info name="Architecture" value="i686"/>
+    <object type="Socket" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003">
+      <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="1048576" depth="2" cache_linesize="64" cache_associativity="16">
+        <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="65536" depth="1" cache_linesize="64" cache_associativity="2">
+          <object type="Core" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001">
+            <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001"/>
+          </object>
+        </object>
+      </object>
+      <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="1048576" depth="2" cache_linesize="64" cache_associativity="16">
+        <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="65536" depth="1" cache_linesize="64" cache_associativity="2">
+          <object type="Core" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002">
+            <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002"/>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="Socket" os_level="-1" os_index="1" cpuset="0x0000000c" complete_cpuset="0x0000000c" online_cpuset="0x0000000c" allowed_cpuset="0x0000000c">
+      <object type="Cache" os_level="-1" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" cache_size="1048576" depth="2" cache_linesize="64" cache_associativity="16">
+        <object type="Cache" os_level="-1" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" cache_size="65536" depth="1" cache_linesize="64" cache_associativity="2">
+          <object type="Core" os_level="-1" os_index="0" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004">
+            <object type="PU" os_level="-1" os_index="2" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004"/>
+          </object>
+        </object>
+      </object>
+      <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" cache_size="1048576" depth="2" cache_linesize="64" cache_associativity="16">
+        <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" cache_size="65536" depth="1" cache_linesize="64" cache_associativity="2">
+          <object type="Core" os_level="-1" os_index="1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008">
+            <object type="PU" os_level="-1" os_index="3" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008"/>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="Socket" os_level="-1" os_index="2" cpuset="0x00000030" complete_cpuset="0x00000030" online_cpuset="0x00000030" allowed_cpuset="0x00000030">
+      <object type="Cache" os_level="-1" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010" cache_size="1048576" depth="2" cache_linesize="64" cache_associativity="16">
+        <object type="Cache" os_level="-1" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010" cache_size="65536" depth="1" cache_linesize="64" cache_associativity="2">
+          <object type="Core" os_level="-1" os_index="0" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010">
+            <object type="PU" os_level="-1" os_index="4" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010"/>
+          </object>
+        </object>
+      </object>
+      <object type="Cache" os_level="-1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" cache_size="1048576" depth="2" cache_linesize="64" cache_associativity="16">
+        <object type="Cache" os_level="-1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" cache_size="65536" depth="1" cache_linesize="64" cache_associativity="2">
+          <object type="Core" os_level="-1" os_index="1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020">
+            <object type="PU" os_level="-1" os_index="5" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020"/>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="Socket" os_level="-1" os_index="3" cpuset="0x000000c0" complete_cpuset="0x000000c0" online_cpuset="0x000000c0" allowed_cpuset="0x000000c0">
+      <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" cache_size="1048576" depth="2" cache_linesize="64" cache_associativity="16">
+        <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" cache_size="65536" depth="1" cache_linesize="64" cache_associativity="2">
+          <object type="Core" os_level="-1" os_index="0" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040">
+            <object type="PU" os_level="-1" os_index="6" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040"/>
+          </object>
+        </object>
+      </object>
+      <object type="Cache" os_level="-1" cpuset="0x00000080" complete_cpuset="0x00000080" online_cpuset="0x00000080" allowed_cpuset="0x00000080" cache_size="1048576" depth="2" cache_linesize="64" cache_associativity="16">
+        <object type="Cache" os_level="-1" cpuset="0x00000080" complete_cpuset="0x00000080" online_cpuset="0x00000080" allowed_cpuset="0x00000080" cache_size="65536" depth="1" cache_linesize="64" cache_associativity="2">
+          <object type="Core" os_level="-1" os_index="1" cpuset="0x00000080" complete_cpuset="0x00000080" online_cpuset="0x00000080" allowed_cpuset="0x00000080">
+            <object type="PU" os_level="-1" os_index="7" cpuset="0x00000080" complete_cpuset="0x00000080" online_cpuset="0x00000080" allowed_cpuset="0x00000080"/>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="Bridge" os_level="-1" os_index="0" bridge_type="0-1" depth="0" bridge_pci="0000:[00-07]">
+      <object type="PCIDev" os_level="-1" os_index="64" name="NVIDIA Corporation MCP55 IDE" pci_busid="0000:00:04.0" pci_type="0101 [10de:036e] [00de:0084] a1" pci_link_speed="0.000000">
+        <info name="PCIVendor" value="NVIDIA Corporation"/>
+        <info name="PCIDevice" value="MCP55 IDE"/>
+        <object type="OSDev" os_level="-1" name="sr0" osdev_type="0"/>
+      </object>
+      <object type="PCIDev" os_level="-1" os_index="80" name="NVIDIA Corporation MCP55 SATA Controller" pci_busid="0000:00:05.0" pci_type="0101 [10de:037f] [00de:0084] a3" pci_link_speed="0.000000">
+        <info name="PCIVendor" value="NVIDIA Corporation"/>
+        <info name="PCIDevice" value="MCP55 SATA Controller"/>
+        <object type="OSDev" os_level="-1" name="sda" osdev_type="0"/>
+        <object type="OSDev" os_level="-1" name="sdb" osdev_type="0"/>
+      </object>
+      <object type="PCIDev" os_level="-1" os_index="81" name="NVIDIA Corporation MCP55 SATA Controller" pci_busid="0000:00:05.1" pci_type="0101 [10de:037f] [00de:0084] a3" pci_link_speed="0.000000">
+        <info name="PCIVendor" value="NVIDIA Corporation"/>
+        <info name="PCIDevice" value="MCP55 SATA Controller"/>
+        <object type="OSDev" os_level="-1" name="sdc" osdev_type="0"/>
+      </object>
+      <object type="PCIDev" os_level="-1" os_index="82" name="NVIDIA Corporation MCP55 SATA Controller" pci_busid="0000:00:05.2" pci_type="0101 [10de:037f] [00de:0084] a3" pci_link_speed="0.000000">
+        <info name="PCIVendor" value="NVIDIA Corporation"/>
+        <info name="PCIDevice" value="MCP55 SATA Controller"/>
+      </object>
+      <object type="Bridge" os_level="-1" os_index="96" name="NVIDIA Corporation MCP55 PCI bridge" bridge_type="1-1" depth="1" bridge_pci="0000:[01-01]" pci_busid="0000:00:06.0" pci_type="0604 [10de:0370] [0000:0000] a2" pci_link_speed="0.000000">
+        <info name="PCIVendor" value="NVIDIA Corporation"/>
+        <info name="PCIDevice" value="MCP55 PCI bridge"/>
+        <object type="PCIDev" os_level="-1" os_index="4112" name="Advanced Micro Devices, Inc. [AMD/ATI] ES1000" pci_busid="0000:01:01.0" pci_type="0300 [1002:515e] [0002:005e] 02" pci_link_speed="0.000000">
+          <info name="PCIVendor" value="Advanced Micro Devices, Inc. [AMD/ATI]"/>
+          <info name="PCIDevice" value="ES1000"/>
+          <object type="OSDev" os_level="-1" name="controlD64" osdev_type="1"/>
+          <object type="OSDev" os_level="-1" name="card0" osdev_type="1"/>
+        </object>
+      </object>
+    </object>
+    <object type="Bridge" os_level="-1" os_index="1" bridge_type="0-1" depth="0" bridge_pci="0000:[08-0a]">
+      <object type="Bridge" os_level="-1" os_index="32800" name="Advanced Micro Devices, Inc. [AMD] AMD-8132 PCI-X Bridge" bridge_type="1-1" depth="1" bridge_pci="0000:[0a-0a]" pci_busid="0000:08:02.0" pci_type="0604 [1022:7458] [0000:0000] 12" pci_link_speed="0.000000">
+        <info name="PCIVendor" value="Advanced Micro Devices, Inc. [AMD]"/>
+        <info name="PCIDevice" value="AMD-8132 PCI-X Bridge"/>
+        <object type="PCIDev" os_level="-1" os_index="41008" name="Intel Corporation 82546GB Gigabit Ethernet Controller" pci_busid="0000:0a:03.0" pci_type="0200 [8086:1079] [00d9:007a] 03" pci_link_speed="0.000000">
+          <info name="PCIVendor" value="Intel Corporation"/>
+          <info name="PCIDevice" value="82546GB Gigabit Ethernet Controller"/>
+          <object type="OSDev" os_level="-1" name="eth0" osdev_type="2">
+            <info name="Address" value="00:30:48:57:8f:26"/>
+          </object>
+        </object>
+        <object type="PCIDev" os_level="-1" os_index="41009" name="Intel Corporation 82546GB Gigabit Ethernet Controller" pci_busid="0000:0a:03.1" pci_type="0200 [8086:1079] [00d9:007a] 03" pci_link_speed="0.000000">
+          <info name="PCIVendor" value="Intel Corporation"/>
+          <info name="PCIDevice" value="82546GB Gigabit Ethernet Controller"/>
+          <object type="OSDev" os_level="-1" name="eth1" osdev_type="2">
+            <info name="Address" value="00:30:48:57:8f:27"/>
+          </object>
+        </object>
+      </object>
+    </object>
+  </object>
+</topology>
diff --git a/test/mpi/impls/hydra/binding_reference/topo4.xml b/test/mpi/impls/hydra/binding_reference/topo4.xml
new file mode 100644
index 0000000..c1ef17f
--- /dev/null
+++ b/test/mpi/impls/hydra/binding_reference/topo4.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE topology SYSTEM "hwloc.dtd">
+<topology>
+  <object type="Machine" os_level="-1" os_index="0" cpuset="0x000000ff" complete_cpuset="0x000000ff" online_cpuset="0x000000ff" allowed_cpuset="0x000000ff" local_memory="33740599296">
+    <page_type size="4096" count="8237451"/>
+    <page_type size="2097152" count="0"/>
+    <info name="DMIProductName" value="X7DBU"/>
+    <info name="DMIProductVersion" value="0123456789"/>
+    <info name="DMIBoardVendor" value="Supermicro"/>
+    <info name="DMIBoardName" value="X7DBU"/>
+    <info name="DMIBoardVersion" value="PCB Version"/>
+    <info name="DMIBoardAssetTag" value=" "/>
+    <info name="DMIChassisVendor" value="Supermicro"/>
+    <info name="DMIChassisType" value="1"/>
+    <info name="DMIChassisVersion" value="0123456789"/>
+    <info name="DMIChassisAssetTag" value=" "/>
+    <info name="DMIBIOSVendor" value="Phoenix Technologies LTD"/>
+    <info name="DMIBIOSVersion" value="2.1a"/>
+    <info name="DMIBIOSDate" value="12/20/2008"/>
+    <info name="DMISysVendor" value="Supermicro"/>
+    <info name="Backend" value="Linux"/>
+    <info name="OSName" value="Linux"/>
+    <info name="OSRelease" value="3.2.0-31-generic"/>
+    <info name="OSVersion" value="#50-Ubuntu SMP Fri Sep 7 16:16:45 UTC 2012"/>
+    <info name="HostName" value="crush"/>
+    <info name="Architecture" value="x86_64"/>
+    <object type="Socket" os_level="-1" os_index="0" cpuset="0x00000055" complete_cpuset="0x00000055" online_cpuset="0x00000055" allowed_cpuset="0x00000055">
+      <object type="Cache" os_level="-1" cpuset="0x00000005" complete_cpuset="0x00000005" online_cpuset="0x00000005" allowed_cpuset="0x00000005" cache_size="6291456" depth="2" cache_linesize="64" cache_associativity="24">
+        <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+          <object type="Core" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001">
+            <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001"/>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+          <object type="Core" os_level="-1" os_index="1" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004">
+            <object type="PU" os_level="-1" os_index="2" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004"/>
+          </object>
+        </object>
+      </object>
+      <object type="Cache" os_level="-1" cpuset="0x00000050" complete_cpuset="0x00000050" online_cpuset="0x00000050" allowed_cpuset="0x00000050" cache_size="6291456" depth="2" cache_linesize="64" cache_associativity="24">
+        <object type="Cache" os_level="-1" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+          <object type="Core" os_level="-1" os_index="2" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010">
+            <object type="PU" os_level="-1" os_index="4" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010"/>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+          <object type="Core" os_level="-1" os_index="3" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040">
+            <object type="PU" os_level="-1" os_index="6" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040"/>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="Socket" os_level="-1" os_index="1" cpuset="0x000000aa" complete_cpuset="0x000000aa" online_cpuset="0x000000aa" allowed_cpuset="0x000000aa">
+      <object type="Cache" os_level="-1" cpuset="0x0000000a" complete_cpuset="0x0000000a" online_cpuset="0x0000000a" allowed_cpuset="0x0000000a" cache_size="6291456" depth="2" cache_linesize="64" cache_associativity="24">
+        <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+          <object type="Core" os_level="-1" os_index="0" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002">
+            <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002"/>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+          <object type="Core" os_level="-1" os_index="1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008">
+            <object type="PU" os_level="-1" os_index="3" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008"/>
+          </object>
+        </object>
+      </object>
+      <object type="Cache" os_level="-1" cpuset="0x000000a0" complete_cpuset="0x000000a0" online_cpuset="0x000000a0" allowed_cpuset="0x000000a0" cache_size="6291456" depth="2" cache_linesize="64" cache_associativity="24">
+        <object type="Cache" os_level="-1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+          <object type="Core" os_level="-1" os_index="2" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020">
+            <object type="PU" os_level="-1" os_index="5" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020"/>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00000080" complete_cpuset="0x00000080" online_cpuset="0x00000080" allowed_cpuset="0x00000080" cache_size="32768" depth="1" cache_linesize="64" cache_associativity="8">
+          <object type="Core" os_level="-1" os_index="3" cpuset="0x00000080" complete_cpuset="0x00000080" online_cpuset="0x00000080" allowed_cpuset="0x00000080">
+            <object type="PU" os_level="-1" os_index="7" cpuset="0x00000080" complete_cpuset="0x00000080" online_cpuset="0x00000080" allowed_cpuset="0x00000080"/>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="Bridge" os_level="-1" os_index="0" bridge_type="0-1" depth="0" bridge_pci="0000:[00-08]">
+      <object type="Bridge" os_level="-1" os_index="32" name="Intel Corporation 5000 Series Chipset PCI Express x8 Port 2-3" bridge_type="1-1" depth="1" bridge_pci="0000:[01-05]" pci_busid="0000:00:02.0" pci_type="0604 [8086:25f7] [0000:0000] b1" pci_link_speed="0.000000">
+        <info name="PCIVendor" value="Intel Corporation"/>
+        <info name="PCIDevice" value="5000 Series Chipset PCI Express x8 Port 2-3"/>
+        <object type="Bridge" os_level="-1" os_index="4096" name="Intel Corporation 6311ESB/6321ESB PCI Express Upstream Port" bridge_type="1-1" depth="2" bridge_pci="0000:[02-04]" pci_busid="0000:01:00.0" pci_type="0604 [8086:3500] [0000:0000] 01" pci_link_speed="0.000000">
+          <info name="PCIVendor" value="Intel Corporation"/>
+          <info name="PCIDevice" value="6311ESB/6321ESB PCI Express Upstream Port"/>
+          <object type="Bridge" os_level="-1" os_index="8224" name="Intel Corporation 6311ESB/6321ESB PCI Express Downstream Port E3" bridge_type="1-1" depth="3" bridge_pci="0000:[04-04]" pci_busid="0000:02:02.0" pci_type="0604 [8086:3518] [0000:0000] 01" pci_link_speed="0.000000">
+            <info name="PCIVendor" value="Intel Corporation"/>
+            <info name="PCIDevice" value="6311ESB/6321ESB PCI Express Downstream Port E3"/>
+            <object type="PCIDev" os_level="-1" os_index="16384" name="Intel Corporation 80003ES2LAN Gigabit Ethernet Controller (Copper)" pci_busid="0000:04:00.0" pci_type="0200 [8086:1096] [00d9:0096] 01" pci_link_speed="0.000000">
+              <info name="PCIVendor" value="Intel Corporation"/>
+              <info name="PCIDevice" value="80003ES2LAN Gigabit Ethernet Controller (Copper)"/>
+              <object type="OSDev" os_level="-1" name="eth0" osdev_type="2">
+                <info name="Address" value="00:30:48:c8:29:7e"/>
+              </object>
+            </object>
+            <object type="PCIDev" os_level="-1" os_index="16385" name="Intel Corporation 80003ES2LAN Gigabit Ethernet Controller (Copper)" pci_busid="0000:04:00.1" pci_type="0200 [8086:1096] [00d9:0096] 01" pci_link_speed="0.000000">
+              <info name="PCIVendor" value="Intel Corporation"/>
+              <info name="PCIDevice" value="80003ES2LAN Gigabit Ethernet Controller (Copper)"/>
+              <object type="OSDev" os_level="-1" name="eth1" osdev_type="2">
+                <info name="Address" value="00:30:48:c8:29:7f"/>
+              </object>
+            </object>
+          </object>
+        </object>
+      </object>
+      <object type="Bridge" os_level="-1" os_index="480" name="Intel Corporation 82801 PCI Bridge" bridge_type="1-1" depth="1" bridge_pci="0000:[08-08]" pci_busid="0000:00:1e.0" pci_type="0604 [8086:244e] [0000:0000] d9" pci_link_speed="0.000000">
+        <info name="PCIVendor" value="Intel Corporation"/>
+        <info name="PCIDevice" value="82801 PCI Bridge"/>
+        <object type="PCIDev" os_level="-1" os_index="32784" name="Advanced Micro Devices, Inc. [AMD/ATI] ES1000" pci_busid="0000:08:01.0" pci_type="0300 [1002:515e] [00d9:0080] 02" pci_link_speed="0.000000">
+          <info name="PCIVendor" value="Advanced Micro Devices, Inc. [AMD/ATI]"/>
+          <info name="PCIDevice" value="ES1000"/>
+          <object type="OSDev" os_level="-1" name="controlD64" osdev_type="1"/>
+          <object type="OSDev" os_level="-1" name="card0" osdev_type="1"/>
+        </object>
+      </object>
+      <object type="PCIDev" os_level="-1" os_index="497" name="Intel Corporation 631xESB/632xESB IDE Controller" pci_busid="0000:00:1f.1" pci_type="0101 [8086:269e] [00d9:0080] 09" pci_link_speed="0.000000">
+        <info name="PCIVendor" value="Intel Corporation"/>
+        <info name="PCIDevice" value="631xESB/632xESB IDE Controller"/>
+        <object type="OSDev" os_level="-1" name="sr0" osdev_type="0"/>
+      </object>
+      <object type="PCIDev" os_level="-1" os_index="498" name="Intel Corporation 631xESB/632xESB SATA AHCI Controller" pci_busid="0000:00:1f.2" pci_type="0106 [8086:2681] [00d9:0080] 09" pci_link_speed="0.000000">
+        <info name="PCIVendor" value="Intel Corporation"/>
+        <info name="PCIDevice" value="631xESB/632xESB SATA AHCI Controller"/>
+        <object type="OSDev" os_level="-1" name="sda" osdev_type="0"/>
+      </object>
+    </object>
+  </object>
+</topology>
diff --git a/test/mpi/impls/hydra/dummy.c b/test/mpi/impls/hydra/dummy.c
new file mode 100644
index 0000000..7eeb76f
--- /dev/null
+++ b/test/mpi/impls/hydra/dummy.c
@@ -0,0 +1,11 @@
+/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
+/*
+ *  (C) 2013 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+/* */
+
+int main( int argc, char *argv[] )
+{
+    return 0;
+}
diff --git a/test/mpi/impls/hydra/proc_binding.sh.in b/test/mpi/impls/hydra/proc_binding.sh.in
new file mode 100755
index 0000000..ee512bd
--- /dev/null
+++ b/test/mpi/impls/hydra/proc_binding.sh.in
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+HYDRA_TOPO_DEBUG=1
+export HYDRA_TOPO_DEBUG
+
+if test -f dummy; then
+    errors=0
+
+    for topo in topo1 topo2 topo3 topo4 ; do
+	export HWLOC_XMLFILE=@top_srcdir@/impls/hydra/binding_reference/$topo.xml
+	for bind in hwthread hwthread:2 hwthread:4 hwthread:8 core core:2 core:4 socket numa board ; do
+	    for map in hwthread hwthread:2 hwthread:4 hwthread:8 core core:2 core:4 socket numa board ; do
+		@MPIEXEC@ -bind-to $bind -map-by $map -n 16 ./dummy | sort -k2n > actual.${topo}.${bind}.${map}.out
+		diff @top_srcdir@/impls/hydra/binding_reference/expected.${topo}.${bind}.${map}.out \
+		    actual.${topo}.${bind}.${map}.out
+		if test "$?" != "0" ; then
+		    echo "ERROR $topo $bind $map"
+		    errors=1
+		else
+		    rm actual.${topo}.${bind}.${map}.out
+		fi
+	    done
+	done
+    done
+
+    if test "$errors" = "0"; then
+	echo " No Errors"
+	exit 0
+    fi
+else
+    echo "run make to build required dummy executable"
+    exit 1
+fi

http://git.mpich.org/mpich.git/commitdiff/774b7c814855a8766c0e9980b94199ab3bf4f796

commit 774b7c814855a8766c0e9980b94199ab3bf4f796
Author: Ken Raffenetti <raffenet at mcs.anl.gov>
Date:   Mon Jan 27 13:58:34 2014 -0600

    make topology debugging output more reliable
    
    Output processor affinity info as a single string. This should prevent
    mangled lines in the debugging output in most cases.
    
    Signed-off-by: Pavan Balaji <balaji at mcs.anl.gov>

diff --git a/src/pm/hydra/tools/topo/hwloc/topo_hwloc.c b/src/pm/hydra/tools/topo/hwloc/topo_hwloc.c
index be8978f..6e8bd58 100644
--- a/src/pm/hydra/tools/topo/hwloc/topo_hwloc.c
+++ b/src/pm/hydra/tools/topo/hwloc/topo_hwloc.c
@@ -10,6 +10,7 @@
 #include "topo_hwloc.h"
 
 #define MAP_LENGTH      (5)
+#define DBG_STR_LENGTH  (128)
 
 struct HYDT_topo_hwloc_info HYDT_topo_hwloc_info = { 0 };
 
@@ -456,15 +457,17 @@ HYD_status HYDT_topo_hwloc_bind(int idx)
 
         /* For debugging, print the binding bitmaps but don't actually bind. */
         if (HYDT_topo_info.debug) {
-            int i;
+            int i, cur;
+            char binding[DBG_STR_LENGTH];
 
-            HYDU_dump_noprefix(stdout, "process %d binding: ", idx);
+            cur = HYDU_snprintf(binding, DBG_STR_LENGTH, "process %d binding: ", idx);
 
             for (i = 0; i < HYDT_topo_hwloc_info.total_num_pus; i++)
-                HYDU_dump_noprefix(stdout, "%d ",
-                                   hwloc_bitmap_isset(HYDT_topo_hwloc_info.bitmap[id], i));
+                cur += HYDU_snprintf(&binding[cur], DBG_STR_LENGTH - cur + 1, "%d ",
+                                     hwloc_bitmap_isset(HYDT_topo_hwloc_info.bitmap[id], i));
 
-            HYDU_dump_noprefix(stdout, "\n");
+            HYDU_snprintf(&binding[cur], DBG_STR_LENGTH - cur + 1, "\n");
+            HYDU_dump_noprefix(stdout, "%s", binding);
         }
         else {
             hwloc_set_cpubind(topology, HYDT_topo_hwloc_info.bitmap[id], 0);

-----------------------------------------------------------------------

Summary of changes:
 src/pm/hydra/tools/topo/hwloc/topo_hwloc.c         |   13 +-
 test/mpi/.gitignore                                |    2 +
 test/mpi/configure.ac                              |    3 +
 test/mpi/impls/Makefile.am                         |    2 +-
 test/mpi/impls/hydra/Makefile.am                   |   13 ++
 .../expected.topo1.board.board.out                 |   16 ++
 .../expected.topo1.board.core.out                  |   16 ++
 .../expected.topo1.board.core:2.out                |   16 ++
 .../expected.topo1.board.core:4.out                |   16 ++
 .../expected.topo1.board.hwthread.out              |   16 ++
 .../expected.topo1.board.hwthread:2.out            |   16 ++
 .../expected.topo1.board.hwthread:4.out            |   16 ++
 .../expected.topo1.board.hwthread:8.out            |   16 ++
 .../expected.topo1.board.numa.out                  |   16 ++
 .../expected.topo1.board.socket.out                |   16 ++
 .../expected.topo1.core.board.out                  |   16 ++
 .../binding_reference/expected.topo1.core.core.out |   16 ++
 .../expected.topo1.core.core:2.out                 |   16 ++
 .../expected.topo1.core.core:4.out                 |   16 ++
 .../expected.topo1.core.hwthread.out               |   16 ++
 .../expected.topo1.core.hwthread:2.out             |   16 ++
 .../expected.topo1.core.hwthread:4.out             |   16 ++
 .../expected.topo1.core.hwthread:8.out             |   16 ++
 .../binding_reference/expected.topo1.core.numa.out |   16 ++
 .../expected.topo1.core.socket.out                 |   16 ++
 .../expected.topo1.core:2.board.out                |   16 ++
 .../expected.topo1.core:2.core.out                 |   16 ++
 .../expected.topo1.core:2.core:2.out               |   16 ++
 .../expected.topo1.core:2.core:4.out               |   16 ++
 .../expected.topo1.core:2.hwthread.out             |   16 ++
 .../expected.topo1.core:2.hwthread:2.out           |   16 ++
 .../expected.topo1.core:2.hwthread:4.out           |   16 ++
 .../expected.topo1.core:2.hwthread:8.out           |   16 ++
 .../expected.topo1.core:2.numa.out                 |   16 ++
 .../expected.topo1.core:2.socket.out               |   16 ++
 .../expected.topo1.core:4.board.out                |   16 ++
 .../expected.topo1.core:4.core.out                 |   16 ++
 .../expected.topo1.core:4.core:2.out               |   16 ++
 .../expected.topo1.core:4.core:4.out               |   16 ++
 .../expected.topo1.core:4.hwthread.out             |   16 ++
 .../expected.topo1.core:4.hwthread:2.out           |   16 ++
 .../expected.topo1.core:4.hwthread:4.out           |   16 ++
 .../expected.topo1.core:4.hwthread:8.out           |   16 ++
 .../expected.topo1.core:4.numa.out                 |   16 ++
 .../expected.topo1.core:4.socket.out               |   16 ++
 .../expected.topo1.hwthread.board.out              |   16 ++
 .../expected.topo1.hwthread.core.out               |   16 ++
 .../expected.topo1.hwthread.core:2.out             |   16 ++
 .../expected.topo1.hwthread.core:4.out             |   16 ++
 .../expected.topo1.hwthread.hwthread.out           |   16 ++
 .../expected.topo1.hwthread.hwthread:2.out         |   16 ++
 .../expected.topo1.hwthread.hwthread:4.out         |   16 ++
 .../expected.topo1.hwthread.hwthread:8.out         |   16 ++
 .../expected.topo1.hwthread.numa.out               |   16 ++
 .../expected.topo1.hwthread.socket.out             |   16 ++
 .../expected.topo1.hwthread:2.board.out            |   16 ++
 .../expected.topo1.hwthread:2.core.out             |   16 ++
 .../expected.topo1.hwthread:2.core:2.out           |   16 ++
 .../expected.topo1.hwthread:2.core:4.out           |   16 ++
 .../expected.topo1.hwthread:2.hwthread.out         |   16 ++
 .../expected.topo1.hwthread:2.hwthread:2.out       |   16 ++
 .../expected.topo1.hwthread:2.hwthread:4.out       |   16 ++
 .../expected.topo1.hwthread:2.hwthread:8.out       |   16 ++
 .../expected.topo1.hwthread:2.numa.out             |   16 ++
 .../expected.topo1.hwthread:2.socket.out           |   16 ++
 .../expected.topo1.hwthread:4.board.out            |   16 ++
 .../expected.topo1.hwthread:4.core.out             |   16 ++
 .../expected.topo1.hwthread:4.core:2.out           |   16 ++
 .../expected.topo1.hwthread:4.core:4.out           |   16 ++
 .../expected.topo1.hwthread:4.hwthread.out         |   16 ++
 .../expected.topo1.hwthread:4.hwthread:2.out       |   16 ++
 .../expected.topo1.hwthread:4.hwthread:4.out       |   16 ++
 .../expected.topo1.hwthread:4.hwthread:8.out       |   16 ++
 .../expected.topo1.hwthread:4.numa.out             |   16 ++
 .../expected.topo1.hwthread:4.socket.out           |   16 ++
 .../expected.topo1.hwthread:8.board.out            |   16 ++
 .../expected.topo1.hwthread:8.core.out             |   16 ++
 .../expected.topo1.hwthread:8.core:2.out           |   16 ++
 .../expected.topo1.hwthread:8.core:4.out           |   16 ++
 .../expected.topo1.hwthread:8.hwthread.out         |   16 ++
 .../expected.topo1.hwthread:8.hwthread:2.out       |   16 ++
 .../expected.topo1.hwthread:8.hwthread:4.out       |   16 ++
 .../expected.topo1.hwthread:8.hwthread:8.out       |   16 ++
 .../expected.topo1.hwthread:8.numa.out             |   16 ++
 .../expected.topo1.hwthread:8.socket.out           |   16 ++
 .../expected.topo1.numa.board.out                  |   16 ++
 .../binding_reference/expected.topo1.numa.core.out |   16 ++
 .../expected.topo1.numa.core:2.out                 |   16 ++
 .../expected.topo1.numa.core:4.out                 |   16 ++
 .../expected.topo1.numa.hwthread.out               |   16 ++
 .../expected.topo1.numa.hwthread:2.out             |   16 ++
 .../expected.topo1.numa.hwthread:4.out             |   16 ++
 .../expected.topo1.numa.hwthread:8.out             |   16 ++
 .../binding_reference/expected.topo1.numa.numa.out |   16 ++
 .../expected.topo1.numa.socket.out                 |   16 ++
 .../expected.topo1.socket.board.out                |   16 ++
 .../expected.topo1.socket.core.out                 |   16 ++
 .../expected.topo1.socket.core:2.out               |   16 ++
 .../expected.topo1.socket.core:4.out               |   16 ++
 .../expected.topo1.socket.hwthread.out             |   16 ++
 .../expected.topo1.socket.hwthread:2.out           |   16 ++
 .../expected.topo1.socket.hwthread:4.out           |   16 ++
 .../expected.topo1.socket.hwthread:8.out           |   16 ++
 .../expected.topo1.socket.numa.out                 |   16 ++
 .../expected.topo1.socket.socket.out               |   16 ++
 .../expected.topo2.board.board.out                 |   16 ++
 .../expected.topo2.board.core.out                  |   16 ++
 .../expected.topo2.board.core:2.out                |   16 ++
 .../expected.topo2.board.core:4.out                |   16 ++
 .../expected.topo2.board.hwthread.out              |   16 ++
 .../expected.topo2.board.hwthread:2.out            |   16 ++
 .../expected.topo2.board.hwthread:4.out            |   16 ++
 .../expected.topo2.board.hwthread:8.out            |   16 ++
 .../expected.topo2.board.numa.out                  |   16 ++
 .../expected.topo2.board.socket.out                |   16 ++
 .../expected.topo2.core.board.out                  |   16 ++
 .../binding_reference/expected.topo2.core.core.out |   16 ++
 .../expected.topo2.core.core:2.out                 |   16 ++
 .../expected.topo2.core.core:4.out                 |   16 ++
 .../expected.topo2.core.hwthread.out               |   16 ++
 .../expected.topo2.core.hwthread:2.out             |   16 ++
 .../expected.topo2.core.hwthread:4.out             |   16 ++
 .../expected.topo2.core.hwthread:8.out             |   16 ++
 .../binding_reference/expected.topo2.core.numa.out |   16 ++
 .../expected.topo2.core.socket.out                 |   16 ++
 .../expected.topo2.core:2.board.out                |   16 ++
 .../expected.topo2.core:2.core.out                 |   16 ++
 .../expected.topo2.core:2.core:2.out               |   16 ++
 .../expected.topo2.core:2.core:4.out               |   16 ++
 .../expected.topo2.core:2.hwthread.out             |   16 ++
 .../expected.topo2.core:2.hwthread:2.out           |   16 ++
 .../expected.topo2.core:2.hwthread:4.out           |   16 ++
 .../expected.topo2.core:2.hwthread:8.out           |   16 ++
 .../expected.topo2.core:2.numa.out                 |   16 ++
 .../expected.topo2.core:2.socket.out               |   16 ++
 .../expected.topo2.core:4.board.out                |   16 ++
 .../expected.topo2.core:4.core.out                 |   16 ++
 .../expected.topo2.core:4.core:2.out               |   16 ++
 .../expected.topo2.core:4.core:4.out               |   16 ++
 .../expected.topo2.core:4.hwthread.out             |   16 ++
 .../expected.topo2.core:4.hwthread:2.out           |   16 ++
 .../expected.topo2.core:4.hwthread:4.out           |   16 ++
 .../expected.topo2.core:4.hwthread:8.out           |   16 ++
 .../expected.topo2.core:4.numa.out                 |   16 ++
 .../expected.topo2.core:4.socket.out               |   16 ++
 .../expected.topo2.hwthread.board.out              |   16 ++
 .../expected.topo2.hwthread.core.out               |   16 ++
 .../expected.topo2.hwthread.core:2.out             |   16 ++
 .../expected.topo2.hwthread.core:4.out             |   16 ++
 .../expected.topo2.hwthread.hwthread.out           |   16 ++
 .../expected.topo2.hwthread.hwthread:2.out         |   16 ++
 .../expected.topo2.hwthread.hwthread:4.out         |   16 ++
 .../expected.topo2.hwthread.hwthread:8.out         |   16 ++
 .../expected.topo2.hwthread.numa.out               |   16 ++
 .../expected.topo2.hwthread.socket.out             |   16 ++
 .../expected.topo2.hwthread:2.board.out            |   16 ++
 .../expected.topo2.hwthread:2.core.out             |   16 ++
 .../expected.topo2.hwthread:2.core:2.out           |   16 ++
 .../expected.topo2.hwthread:2.core:4.out           |   16 ++
 .../expected.topo2.hwthread:2.hwthread.out         |   16 ++
 .../expected.topo2.hwthread:2.hwthread:2.out       |   16 ++
 .../expected.topo2.hwthread:2.hwthread:4.out       |   16 ++
 .../expected.topo2.hwthread:2.hwthread:8.out       |   16 ++
 .../expected.topo2.hwthread:2.numa.out             |   16 ++
 .../expected.topo2.hwthread:2.socket.out           |   16 ++
 .../expected.topo2.hwthread:4.board.out            |   16 ++
 .../expected.topo2.hwthread:4.core.out             |   16 ++
 .../expected.topo2.hwthread:4.core:2.out           |   16 ++
 .../expected.topo2.hwthread:4.core:4.out           |   16 ++
 .../expected.topo2.hwthread:4.hwthread.out         |   16 ++
 .../expected.topo2.hwthread:4.hwthread:2.out       |   16 ++
 .../expected.topo2.hwthread:4.hwthread:4.out       |   16 ++
 .../expected.topo2.hwthread:4.hwthread:8.out       |   16 ++
 .../expected.topo2.hwthread:4.numa.out             |   16 ++
 .../expected.topo2.hwthread:4.socket.out           |   16 ++
 .../expected.topo2.hwthread:8.board.out            |   16 ++
 .../expected.topo2.hwthread:8.core.out             |   16 ++
 .../expected.topo2.hwthread:8.core:2.out           |   16 ++
 .../expected.topo2.hwthread:8.core:4.out           |   16 ++
 .../expected.topo2.hwthread:8.hwthread.out         |   16 ++
 .../expected.topo2.hwthread:8.hwthread:2.out       |   16 ++
 .../expected.topo2.hwthread:8.hwthread:4.out       |   16 ++
 .../expected.topo2.hwthread:8.hwthread:8.out       |   16 ++
 .../expected.topo2.hwthread:8.numa.out             |   16 ++
 .../expected.topo2.hwthread:8.socket.out           |   16 ++
 .../expected.topo2.numa.board.out                  |   16 ++
 .../binding_reference/expected.topo2.numa.core.out |   16 ++
 .../expected.topo2.numa.core:2.out                 |   16 ++
 .../expected.topo2.numa.core:4.out                 |   16 ++
 .../expected.topo2.numa.hwthread.out               |   16 ++
 .../expected.topo2.numa.hwthread:2.out             |   16 ++
 .../expected.topo2.numa.hwthread:4.out             |   16 ++
 .../expected.topo2.numa.hwthread:8.out             |   16 ++
 .../binding_reference/expected.topo2.numa.numa.out |   16 ++
 .../expected.topo2.numa.socket.out                 |   16 ++
 .../expected.topo2.socket.board.out                |   16 ++
 .../expected.topo2.socket.core.out                 |   16 ++
 .../expected.topo2.socket.core:2.out               |   16 ++
 .../expected.topo2.socket.core:4.out               |   16 ++
 .../expected.topo2.socket.hwthread.out             |   16 ++
 .../expected.topo2.socket.hwthread:2.out           |   16 ++
 .../expected.topo2.socket.hwthread:4.out           |   16 ++
 .../expected.topo2.socket.hwthread:8.out           |   16 ++
 .../expected.topo2.socket.numa.out                 |   16 ++
 .../expected.topo2.socket.socket.out               |   16 ++
 .../expected.topo3.board.board.out                 |   16 ++
 .../expected.topo3.board.core.out                  |   16 ++
 .../expected.topo3.board.core:2.out                |   16 ++
 .../expected.topo3.board.core:4.out                |   16 ++
 .../expected.topo3.board.hwthread.out              |   16 ++
 .../expected.topo3.board.hwthread:2.out            |   16 ++
 .../expected.topo3.board.hwthread:4.out            |   16 ++
 .../expected.topo3.board.hwthread:8.out            |   16 ++
 .../expected.topo3.board.numa.out                  |   16 ++
 .../expected.topo3.board.socket.out                |   16 ++
 .../expected.topo3.core.board.out                  |   16 ++
 .../binding_reference/expected.topo3.core.core.out |   16 ++
 .../expected.topo3.core.core:2.out                 |   16 ++
 .../expected.topo3.core.core:4.out                 |   16 ++
 .../expected.topo3.core.hwthread.out               |   16 ++
 .../expected.topo3.core.hwthread:2.out             |   16 ++
 .../expected.topo3.core.hwthread:4.out             |   16 ++
 .../expected.topo3.core.hwthread:8.out             |   16 ++
 .../binding_reference/expected.topo3.core.numa.out |   16 ++
 .../expected.topo3.core.socket.out                 |   16 ++
 .../expected.topo3.core:2.board.out                |   16 ++
 .../expected.topo3.core:2.core.out                 |   16 ++
 .../expected.topo3.core:2.core:2.out               |   16 ++
 .../expected.topo3.core:2.core:4.out               |   16 ++
 .../expected.topo3.core:2.hwthread.out             |   16 ++
 .../expected.topo3.core:2.hwthread:2.out           |   16 ++
 .../expected.topo3.core:2.hwthread:4.out           |   16 ++
 .../expected.topo3.core:2.hwthread:8.out           |   16 ++
 .../expected.topo3.core:2.numa.out                 |   16 ++
 .../expected.topo3.core:2.socket.out               |   16 ++
 .../expected.topo3.core:4.board.out                |   16 ++
 .../expected.topo3.core:4.core.out                 |   16 ++
 .../expected.topo3.core:4.core:2.out               |   16 ++
 .../expected.topo3.core:4.core:4.out               |   16 ++
 .../expected.topo3.core:4.hwthread.out             |   16 ++
 .../expected.topo3.core:4.hwthread:2.out           |   16 ++
 .../expected.topo3.core:4.hwthread:4.out           |   16 ++
 .../expected.topo3.core:4.hwthread:8.out           |   16 ++
 .../expected.topo3.core:4.numa.out                 |   16 ++
 .../expected.topo3.core:4.socket.out               |   16 ++
 .../expected.topo3.hwthread.board.out              |   16 ++
 .../expected.topo3.hwthread.core.out               |   16 ++
 .../expected.topo3.hwthread.core:2.out             |   16 ++
 .../expected.topo3.hwthread.core:4.out             |   16 ++
 .../expected.topo3.hwthread.hwthread.out           |   16 ++
 .../expected.topo3.hwthread.hwthread:2.out         |   16 ++
 .../expected.topo3.hwthread.hwthread:4.out         |   16 ++
 .../expected.topo3.hwthread.hwthread:8.out         |   16 ++
 .../expected.topo3.hwthread.numa.out               |   16 ++
 .../expected.topo3.hwthread.socket.out             |   16 ++
 .../expected.topo3.hwthread:2.board.out            |   16 ++
 .../expected.topo3.hwthread:2.core.out             |   16 ++
 .../expected.topo3.hwthread:2.core:2.out           |   16 ++
 .../expected.topo3.hwthread:2.core:4.out           |   16 ++
 .../expected.topo3.hwthread:2.hwthread.out         |   16 ++
 .../expected.topo3.hwthread:2.hwthread:2.out       |   16 ++
 .../expected.topo3.hwthread:2.hwthread:4.out       |   16 ++
 .../expected.topo3.hwthread:2.hwthread:8.out       |   16 ++
 .../expected.topo3.hwthread:2.numa.out             |   16 ++
 .../expected.topo3.hwthread:2.socket.out           |   16 ++
 .../expected.topo3.hwthread:4.board.out            |   16 ++
 .../expected.topo3.hwthread:4.core.out             |   16 ++
 .../expected.topo3.hwthread:4.core:2.out           |   16 ++
 .../expected.topo3.hwthread:4.core:4.out           |   16 ++
 .../expected.topo3.hwthread:4.hwthread.out         |   16 ++
 .../expected.topo3.hwthread:4.hwthread:2.out       |   16 ++
 .../expected.topo3.hwthread:4.hwthread:4.out       |   16 ++
 .../expected.topo3.hwthread:4.hwthread:8.out       |   16 ++
 .../expected.topo3.hwthread:4.numa.out             |   16 ++
 .../expected.topo3.hwthread:4.socket.out           |   16 ++
 .../expected.topo3.hwthread:8.board.out            |   16 ++
 .../expected.topo3.hwthread:8.core.out             |   16 ++
 .../expected.topo3.hwthread:8.core:2.out           |   16 ++
 .../expected.topo3.hwthread:8.core:4.out           |   16 ++
 .../expected.topo3.hwthread:8.hwthread.out         |   16 ++
 .../expected.topo3.hwthread:8.hwthread:2.out       |   16 ++
 .../expected.topo3.hwthread:8.hwthread:4.out       |   16 ++
 .../expected.topo3.hwthread:8.hwthread:8.out       |   16 ++
 .../expected.topo3.hwthread:8.numa.out             |   16 ++
 .../expected.topo3.hwthread:8.socket.out           |   16 ++
 .../expected.topo3.numa.board.out                  |   16 ++
 .../binding_reference/expected.topo3.numa.core.out |   16 ++
 .../expected.topo3.numa.core:2.out                 |   16 ++
 .../expected.topo3.numa.core:4.out                 |   16 ++
 .../expected.topo3.numa.hwthread.out               |   16 ++
 .../expected.topo3.numa.hwthread:2.out             |   16 ++
 .../expected.topo3.numa.hwthread:4.out             |   16 ++
 .../expected.topo3.numa.hwthread:8.out             |   16 ++
 .../binding_reference/expected.topo3.numa.numa.out |   16 ++
 .../expected.topo3.numa.socket.out                 |   16 ++
 .../expected.topo3.socket.board.out                |   16 ++
 .../expected.topo3.socket.core.out                 |   16 ++
 .../expected.topo3.socket.core:2.out               |   16 ++
 .../expected.topo3.socket.core:4.out               |   16 ++
 .../expected.topo3.socket.hwthread.out             |   16 ++
 .../expected.topo3.socket.hwthread:2.out           |   16 ++
 .../expected.topo3.socket.hwthread:4.out           |   16 ++
 .../expected.topo3.socket.hwthread:8.out           |   16 ++
 .../expected.topo3.socket.numa.out                 |   16 ++
 .../expected.topo3.socket.socket.out               |   16 ++
 .../expected.topo4.board.board.out                 |   16 ++
 .../expected.topo4.board.core.out                  |   16 ++
 .../expected.topo4.board.core:2.out                |   16 ++
 .../expected.topo4.board.core:4.out                |   16 ++
 .../expected.topo4.board.hwthread.out              |   16 ++
 .../expected.topo4.board.hwthread:2.out            |   16 ++
 .../expected.topo4.board.hwthread:4.out            |   16 ++
 .../expected.topo4.board.hwthread:8.out            |   16 ++
 .../expected.topo4.board.numa.out                  |   16 ++
 .../expected.topo4.board.socket.out                |   16 ++
 .../expected.topo4.core.board.out                  |   16 ++
 .../binding_reference/expected.topo4.core.core.out |   16 ++
 .../expected.topo4.core.core:2.out                 |   16 ++
 .../expected.topo4.core.core:4.out                 |   16 ++
 .../expected.topo4.core.hwthread.out               |   16 ++
 .../expected.topo4.core.hwthread:2.out             |   16 ++
 .../expected.topo4.core.hwthread:4.out             |   16 ++
 .../expected.topo4.core.hwthread:8.out             |   16 ++
 .../binding_reference/expected.topo4.core.numa.out |   16 ++
 .../expected.topo4.core.socket.out                 |   16 ++
 .../expected.topo4.core:2.board.out                |   16 ++
 .../expected.topo4.core:2.core.out                 |   16 ++
 .../expected.topo4.core:2.core:2.out               |   16 ++
 .../expected.topo4.core:2.core:4.out               |   16 ++
 .../expected.topo4.core:2.hwthread.out             |   16 ++
 .../expected.topo4.core:2.hwthread:2.out           |   16 ++
 .../expected.topo4.core:2.hwthread:4.out           |   16 ++
 .../expected.topo4.core:2.hwthread:8.out           |   16 ++
 .../expected.topo4.core:2.numa.out                 |   16 ++
 .../expected.topo4.core:2.socket.out               |   16 ++
 .../expected.topo4.core:4.board.out                |   16 ++
 .../expected.topo4.core:4.core.out                 |   16 ++
 .../expected.topo4.core:4.core:2.out               |   16 ++
 .../expected.topo4.core:4.core:4.out               |   16 ++
 .../expected.topo4.core:4.hwthread.out             |   16 ++
 .../expected.topo4.core:4.hwthread:2.out           |   16 ++
 .../expected.topo4.core:4.hwthread:4.out           |   16 ++
 .../expected.topo4.core:4.hwthread:8.out           |   16 ++
 .../expected.topo4.core:4.numa.out                 |   16 ++
 .../expected.topo4.core:4.socket.out               |   16 ++
 .../expected.topo4.hwthread.board.out              |   16 ++
 .../expected.topo4.hwthread.core.out               |   16 ++
 .../expected.topo4.hwthread.core:2.out             |   16 ++
 .../expected.topo4.hwthread.core:4.out             |   16 ++
 .../expected.topo4.hwthread.hwthread.out           |   16 ++
 .../expected.topo4.hwthread.hwthread:2.out         |   16 ++
 .../expected.topo4.hwthread.hwthread:4.out         |   16 ++
 .../expected.topo4.hwthread.hwthread:8.out         |   16 ++
 .../expected.topo4.hwthread.numa.out               |   16 ++
 .../expected.topo4.hwthread.socket.out             |   16 ++
 .../expected.topo4.hwthread:2.board.out            |   16 ++
 .../expected.topo4.hwthread:2.core.out             |   16 ++
 .../expected.topo4.hwthread:2.core:2.out           |   16 ++
 .../expected.topo4.hwthread:2.core:4.out           |   16 ++
 .../expected.topo4.hwthread:2.hwthread.out         |   16 ++
 .../expected.topo4.hwthread:2.hwthread:2.out       |   16 ++
 .../expected.topo4.hwthread:2.hwthread:4.out       |   16 ++
 .../expected.topo4.hwthread:2.hwthread:8.out       |   16 ++
 .../expected.topo4.hwthread:2.numa.out             |   16 ++
 .../expected.topo4.hwthread:2.socket.out           |   16 ++
 .../expected.topo4.hwthread:4.board.out            |   16 ++
 .../expected.topo4.hwthread:4.core.out             |   16 ++
 .../expected.topo4.hwthread:4.core:2.out           |   16 ++
 .../expected.topo4.hwthread:4.core:4.out           |   16 ++
 .../expected.topo4.hwthread:4.hwthread.out         |   16 ++
 .../expected.topo4.hwthread:4.hwthread:2.out       |   16 ++
 .../expected.topo4.hwthread:4.hwthread:4.out       |   16 ++
 .../expected.topo4.hwthread:4.hwthread:8.out       |   16 ++
 .../expected.topo4.hwthread:4.numa.out             |   16 ++
 .../expected.topo4.hwthread:4.socket.out           |   16 ++
 .../expected.topo4.hwthread:8.board.out            |   16 ++
 .../expected.topo4.hwthread:8.core.out             |   16 ++
 .../expected.topo4.hwthread:8.core:2.out           |   16 ++
 .../expected.topo4.hwthread:8.core:4.out           |   16 ++
 .../expected.topo4.hwthread:8.hwthread.out         |   16 ++
 .../expected.topo4.hwthread:8.hwthread:2.out       |   16 ++
 .../expected.topo4.hwthread:8.hwthread:4.out       |   16 ++
 .../expected.topo4.hwthread:8.hwthread:8.out       |   16 ++
 .../expected.topo4.hwthread:8.numa.out             |   16 ++
 .../expected.topo4.hwthread:8.socket.out           |   16 ++
 .../expected.topo4.numa.board.out                  |   16 ++
 .../binding_reference/expected.topo4.numa.core.out |   16 ++
 .../expected.topo4.numa.core:2.out                 |   16 ++
 .../expected.topo4.numa.core:4.out                 |   16 ++
 .../expected.topo4.numa.hwthread.out               |   16 ++
 .../expected.topo4.numa.hwthread:2.out             |   16 ++
 .../expected.topo4.numa.hwthread:4.out             |   16 ++
 .../expected.topo4.numa.hwthread:8.out             |   16 ++
 .../binding_reference/expected.topo4.numa.numa.out |   16 ++
 .../expected.topo4.numa.socket.out                 |   16 ++
 .../expected.topo4.socket.board.out                |   16 ++
 .../expected.topo4.socket.core.out                 |   16 ++
 .../expected.topo4.socket.core:2.out               |   16 ++
 .../expected.topo4.socket.core:4.out               |   16 ++
 .../expected.topo4.socket.hwthread.out             |   16 ++
 .../expected.topo4.socket.hwthread:2.out           |   16 ++
 .../expected.topo4.socket.hwthread:4.out           |   16 ++
 .../expected.topo4.socket.hwthread:8.out           |   16 ++
 .../expected.topo4.socket.numa.out                 |   16 ++
 .../expected.topo4.socket.socket.out               |   16 ++
 test/mpi/impls/hydra/binding_reference/topo1.xml   |   59 ++++++++
 test/mpi/impls/hydra/binding_reference/topo2.xml   |  150 ++++++++++++++++++++
 test/mpi/impls/hydra/binding_reference/topo3.xml   |  144 +++++++++++++++++++
 test/mpi/impls/hydra/binding_reference/topo4.xml   |  128 +++++++++++++++++
 test/mpi/impls/hydra/dummy.c                       |   11 ++
 test/mpi/impls/hydra/proc_binding.sh.in            |   33 +++++
 411 files changed, 6952 insertions(+), 6 deletions(-)
 create mode 100644 test/mpi/impls/hydra/Makefile.am
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.board.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.board.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.board.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.board.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.board.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.board.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.board.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:2.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.core:4.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:2.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:4.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.hwthread:8.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.numa.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.numa.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.numa.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.numa.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.numa.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.numa.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.numa.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.socket.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.socket.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.socket.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.socket.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.socket.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.socket.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo1.socket.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.board.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.board.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.board.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.board.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.board.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.board.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.board.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:2.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.core:4.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:2.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:4.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.hwthread:8.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.numa.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.numa.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.numa.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.numa.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.numa.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.numa.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.numa.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.socket.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.socket.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.socket.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.socket.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.socket.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.socket.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo2.socket.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.board.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.board.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.board.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.board.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.board.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.board.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.board.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:2.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.core:4.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:2.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:4.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.hwthread:8.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.numa.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.numa.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.numa.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.numa.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.numa.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.numa.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.numa.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.socket.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.socket.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.socket.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.socket.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.socket.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.socket.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo3.socket.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.board.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.board.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.board.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.board.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.board.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.board.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.board.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:2.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.core:4.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:2.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:4.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.hwthread:8.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.numa.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.numa.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.numa.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.numa.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.numa.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.numa.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.numa.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.socket.board.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.socket.core.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.socket.core:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.socket.core:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread:2.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread:4.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.socket.hwthread:8.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.socket.numa.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/expected.topo4.socket.socket.out
 create mode 100644 test/mpi/impls/hydra/binding_reference/topo1.xml
 create mode 100644 test/mpi/impls/hydra/binding_reference/topo2.xml
 create mode 100644 test/mpi/impls/hydra/binding_reference/topo3.xml
 create mode 100644 test/mpi/impls/hydra/binding_reference/topo4.xml
 create mode 100644 test/mpi/impls/hydra/dummy.c
 create mode 100755 test/mpi/impls/hydra/proc_binding.sh.in


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list