3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-25 05:43: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:
Olivier Parcollet 2013-12-29 13:43:38 +01:00
parent 74469ad5b0
commit 5b8113b46a
4 changed files with 39 additions and 4 deletions

View File

@ -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)
@ -8,11 +15,12 @@ add_custom_target(py_copy ALL DEPENDS ${py_copy_tar})
find_package(CythonModuleMacro) find_package(CythonModuleMacro)
SET(PYTHON_SOURCES SET(PYTHON_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/__init__.py ${CMAKE_CURRENT_SOURCE_DIR}/__init__.py
${CMAKE_CURRENT_BINARY_DIR}/version.py ${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}/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})

View File

@ -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
View 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 *