ee3517427e
Add a framework to support different types of threading models including user space thread packages such as Qthreads and argobot: https://github.com/pmodels/argobots https://github.com/Qthreads/qthreads The default threading model is pthreads. Alternate thread models are specificed at configure time using the --with-threads=X option. The framework is static. The theading model to use is selected at Open MPI configure/build time. mca/threads: implement Argobots threading layer config: fix thread configury - Add double quotations - Change Argobot to Argobots config: implement Argobots check If the poll time is too long, MPI hangs. This quick fix just sets it to 0, but it is not good for the Pthreads version. Need to find a good way to abstract it. Note that even 1 (= 1 millisecond) causes disastrous performance degradation. rework threads MCA framework configury It now works more like the ompi/mca/rte configury, modulo some edge items that are special for threading package linking, etc. qthreads module some argobots cleanup Signed-off-by: Noah Evans <noah.evans@gmail.com> Signed-off-by: Shintaro Iwasaki <siwasaki@anl.gov> Signed-off-by: Howard Pritchard <howardp@lanl.gov>
61 строка
1.8 KiB
Bash
61 строка
1.8 KiB
Bash
dnl -*- shell-script -*-
|
|
dnl
|
|
dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
dnl University Research and Technology
|
|
dnl Corporation. All rights reserved.
|
|
dnl Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
dnl of Tennessee Research Foundation. All rights
|
|
dnl reserved.
|
|
dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
dnl University of Stuttgart. All rights reserved.
|
|
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
|
dnl All rights reserved.
|
|
dnl Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
|
dnl Copyright (c) 2019 Sandia National Laboratories. All rights reserved.
|
|
dnl Copyright (c) 2019 Triad National Security, LLC. All rights
|
|
dnl reserved.
|
|
dnl
|
|
dnl $COPYRIGHT$
|
|
dnl
|
|
dnl Additional copyrights may follow
|
|
dnl
|
|
dnl $HEADER$
|
|
dnl
|
|
|
|
dnl we only want one :)
|
|
m4_define(MCA_opal_threads_CONFIGURE_MODE, STOP_AT_FIRST)
|
|
|
|
AC_DEFUN([MCA_opal_threads_CONFIG],[
|
|
#
|
|
# Arguments: none
|
|
#
|
|
# Dependencies: None
|
|
#
|
|
# Modifies:
|
|
# none - see called tests
|
|
#
|
|
# configure threads
|
|
#
|
|
|
|
#
|
|
# First see what kind of threads we are going to use
|
|
#
|
|
|
|
AC_ARG_WITH([threads],
|
|
[AC_HELP_STRING([--with-threads=TYPE],
|
|
[Specify thread TYPE to use. default:pthreads. Other options are qthreads and argobots.])])
|
|
|
|
#
|
|
# Configure components
|
|
#
|
|
|
|
MCA_CONFIGURE_FRAMEWORK($1, $2, 1)
|
|
|
|
AS_IF([test x"$opal_thread_type_found" = x""],
|
|
[AC_MSG_ERROR([Did not find a suitable threads component])])
|
|
|
|
AC_MSG_RESULT([Found thread type $opal_thread_type_found])
|
|
|
|
OPAL_SUMMARY_ADD([[Miscellaneous]],[[Threading Package]],[], [$opal_thread_type_found])
|
|
])dnl
|