Add omp parallelization for bessel function

This commit is contained in:
LAVAUX Guilhem 2020-10-26 08:49:12 +01:00
parent 67c609a422
commit 84a1d3bf47
4 changed files with 16 additions and 4 deletions

5
.gitignore vendored
View File

@ -1,4 +1,9 @@
*~
.eggs/
dist/
wheelhouse/
cosmotool.egg-info/
build/
*.o
*.prog
*.pyc

View File

@ -70,8 +70,8 @@ SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A toolbox for impatient cosmologists")
SET(CPACK_PACKAGE_VENDOR "Guilhem Lavaux")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENCE_CeCILL_V2")
SET(CPACK_PACKAGE_VERSION_MAJOR "1")
SET(CPACK_PACKAGE_VERSION_MINOR "0")
SET(CPACK_PACKAGE_VERSION_PATCH "0${EXTRA_VERSION}")
SET(CPACK_PACKAGE_VERSION_MINOR "1")
SET(CPACK_PACKAGE_VERSION_PATCH "1${EXTRA_VERSION}")
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CosmoToolbox-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
SET(CPACK_STRIP_FILES "lib/libCosmoTool.so")
SET(CPACK_SOURCE_IGNORE_FILES

View File

@ -1,3 +1,4 @@
#cython: language_level=3
import numpy as np
cimport numpy as np
@ -7,15 +8,21 @@ np.import_ufunc()
cdef extern from "sys/types.h":
ctypedef np.int64_t int64_t
cdef extern from "numpy/npy_common.h":
ctypedef npy_intp
cdef extern from "special_math.hpp" namespace "CosmoTool":
T log_modified_bessel_first_kind[T](T v, T z) nogil except +
cdef extern from "numpy_adaptor.hpp" namespace "CosmoTool":
void parallel_ufunc_dd_d[T,IT](char **args, IT* dimensions, IT* steps, void *func)
cdef np.PyUFuncGenericFunction loop_func[1]
cdef char input_output_types[3]
cdef void *elementwise_funcs[1]
loop_func[0] = np.PyUFunc_dd_d
loop_func[0] = <np.PyUFuncGenericFunction>parallel_ufunc_dd_d[double,npy_intp]
input_output_types[0] = np.NPY_DOUBLE
input_output_types[1] = np.NPY_DOUBLE

View File

@ -218,7 +218,7 @@ class BuildCMakeExt(build_ext):
CosmoTool_extension = CMakeExtension(name="cosmotool")
setup(name='cosmotool',
version='1.1.0',
version='1.1.1',
packages=["cosmotool"],
package_dir={'cosmotool': 'python/cosmotool'},
install_requires=['numpy','cffi','numexpr','pyfftw','h5py'],