[upc-users] incompatible cupc/cupc2c and MXM conduit in 2.26.0?

Skip to first unread message

Craig Reese

Oct 17, 2017, 9:45:33 AM10/17/17
to upc-...@hpcrdm.lbl.gov

Can someone please correct my expectations?

I'm trying to build 2.26.0 on a cluster with the MXM conduit (gcc/6.4.0,
clang-upc 3.9.1 if that matters)

I want to make available (or so it has been requested) having gupc,
cupc, cupc2c.

The problem is that the multiconfs for cupc/cupc2c explicitly disable

but MXM _requires_ pthreads.  Do this really mean that cupc/cupc2c is

incompatible with an MXM conduit?

I'm relatively new to the guts and building of bupc/gasnet so I want to
make sure before I give up.

Paul Hargrove

Oct 17, 2017, 1:20:30 PM10/17/17
to Craig Reese, upc-...@hpcrdm.lbl.gov

Thank you reporting the problem rather than giving up.
I believe you have found a bug in the multiconf logic for clang-upc.

I can reproduce a portion of your problem, but not all of it.
Specifically I can confirm that the multiconf logic is preventing builds of cupc+mxm.
However, I do not encounter any problem with cupc2c+mxm.

There appears to be a mistake in the multiconf logic, which should only be disabling support for pthreads-as-UPC-threads but instead has disabled libpthread entirely.

I suspect the patch below should be sufficient to resolve your problem.
If you rather use an editor, just replace the instances of "--disable-pthreads" with "--disable-par" in the .multiconf.in files.

Please let us know if these changes work for you.


index a363148..6a7498e 100644
@@ -136,10 +136,10 @@ dbg_gupc ; --with-gupc="${GUPC_TRANS}" --enable-debug ; $opt{'g'} && ( $opt{'gup
 opt_gupc ; --with-gupc="${GUPC_TRANS}" ; $opt{'gupc'} || $opt{'gccupc'} ; -gupc,-gccupc

 # CUPC + UPCR mode
-dbg_cupc ; --with-cupc="${CUPC_TRANS}" --disable-pthreads --enable-debug ; $opt{'g'} && $opt{'cupc'} ; -cupc
+dbg_cupc ; --with-cupc="${CUPC_TRANS}" --disable-par --enable-debug ; $opt{'g'} && $opt{'cupc'} ; -cupc

 # CUPC + UPCR mode
-opt_cupc ; --with-cupc="${CUPC_TRANS}" --disable-pthreads ; $opt{'cupc'} ; -cupc
+opt_cupc ; --with-cupc="${CUPC_TRANS}" --disable-par ; $opt{'cupc'} ; -cupc

 # clang-upc2c + UPCR mode
 dbg_cupc2c ; --with-clang-upc2c="${CUPC2C_TRANS}" --enable-debug ; $opt{'g'} && $opt{'cupc2c'} ; -cupc2c
index 7f84eef..8ed9a37 100644
@@ -37,10 +37,10 @@ BLACKLISTED_WITH_OPTIONS=gupc,cupc,clang-upc2c,translator
 # See multiconf.conf.in for complete documentation

 # CUPC + UPCR mode with debugging, stats and tracing (selected with '-g')
-dbg_cupc ; --with-cupc="${CUPC_TRANS}" --disable-pthreads --enable-debug ; $opt{'g'} ; -cupc
+dbg_cupc ; --with-cupc="${CUPC_TRANS}" --disable-par --enable-debug ; $opt{'g'} ; -cupc

 # CUPC + UPCR mode with optimization (default)
-opt_cupc ; --with-cupc="${CUPC_TRANS}" --disable-pthreads ; 1 ; -cupc
+opt_cupc ; --with-cupc="${CUPC_TRANS}" --disable-par ; 1 ; -cupc

 # end of config section
 # everything below the following line is upcc -help output for the above options

upc-users mailing list

Paul H. Hargrove                          PHHar...@lbl.gov
Computer Languages & Systems Software (CLaSS) Group
Computer Science Department               Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900
Reply all
Reply to author
0 new messages