mirror of
https://github.com/triqs/dft_tools
synced 2024-12-25 13:53:40 +01:00
pytriqs: add option to use mpi4py instead of boost.python.mpi
- to choose mpi4py over boost.python.mpi, pass -DPython_use_mpi4py=ON - boost.mpi stays the default for python, but adding the possibility of using mpi4py instead. - Due to numerous pbs on recent OS X + brew installation. boost.mpi does not work (crash in openmpi ??), mpi4py does - the pytriqs/utility/mpi.py is now configured by the cmake (like version.py) to prepare one of the two possibilities. - TODO: not tested carefully : to be done in other machines.
This commit is contained in:
parent
74469ad5b0
commit
5b8113b46a
@ -1,3 +1,10 @@
|
|||||||
|
option(Python_use_mpi4py "Use mpi4py instead of boost.mpi" OFF)
|
||||||
|
if (Python_use_mpi4py)
|
||||||
|
SET (TRIQS_PYTHON_MPI_USE_MPI4PY 1)
|
||||||
|
else()
|
||||||
|
SET(TRIQS_PYTHON_MPI_USE_MPI4PY 0)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Create a temporary copy of the python modules so that we can run before installation with the test
|
# Create a temporary copy of the python modules so that we can run before installation with the test
|
||||||
FILE(GLOB_RECURSE all_py_files RELATIVE ${CMAKE_SOURCE_DIR}/pytriqs *.py )
|
FILE(GLOB_RECURSE all_py_files RELATIVE ${CMAKE_SOURCE_DIR}/pytriqs *.py )
|
||||||
SET(py_copy_tar ${CMAKE_BINARY_DIR}/py_copy.tar)
|
SET(py_copy_tar ${CMAKE_BINARY_DIR}/py_copy.tar)
|
||||||
@ -13,6 +20,7 @@ SET(PYTHON_SOURCES
|
|||||||
)
|
)
|
||||||
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.py.in ${CMAKE_CURRENT_BINARY_DIR}/version.py)
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.py.in ${CMAKE_CURRENT_BINARY_DIR}/version.py)
|
||||||
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/utility/mpi.py.in ${CMAKE_CURRENT_BINARY_DIR}/utility/mpi.py)
|
||||||
|
|
||||||
install (FILES ${PYTHON_SOURCES} DESTINATION ${TRIQS_PYTHON_LIB_DEST})
|
install (FILES ${PYTHON_SOURCES} DESTINATION ${TRIQS_PYTHON_LIB_DEST})
|
||||||
|
|
||||||
|
@ -3,7 +3,9 @@ SET(PYTHON_SOURCES
|
|||||||
${CMAKE_CURRENT_SOURCE_DIR}/__init__.py
|
${CMAKE_CURRENT_SOURCE_DIR}/__init__.py
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/dichotomy.py
|
${CMAKE_CURRENT_SOURCE_DIR}/dichotomy.py
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/dist_on_nodes.py
|
${CMAKE_CURRENT_SOURCE_DIR}/dist_on_nodes.py
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/mpi.py
|
${CMAKE_CURRENT_BINARY_DIR}/mpi.py
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/mpi_mpi4py.py
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/mpi_boost.py
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/redirect.py
|
${CMAKE_CURRENT_SOURCE_DIR}/redirect.py
|
||||||
)
|
)
|
||||||
|
|
||||||
|
25
pytriqs/utility/mpi.py.in
Normal file
25
pytriqs/utility/mpi.py.in
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# TRIQS: a Toolbox for Research in Interacting Quantum Systems
|
||||||
|
#
|
||||||
|
# Copyright (C) 2013 by M. Ferrero, O. Parcollet
|
||||||
|
#
|
||||||
|
# TRIQS is free software: you can redistribute it and/or modify it under the
|
||||||
|
# terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation, either version 3 of the License, or (at your option) any later
|
||||||
|
# version.
|
||||||
|
#
|
||||||
|
# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along with
|
||||||
|
# TRIQS. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
if @TRIQS_PYTHON_MPI_USE_MPI4PY@ :
|
||||||
|
from mpi_mpi4py import *
|
||||||
|
else:
|
||||||
|
from mpi_boost import *
|
Loading…
Reference in New Issue
Block a user