Cython Parallel Openmp For Black Scholes With Numpy Integrated, Serial Code 10m Options 3.5s, Parallel?
Here is the Black (Black Scholes less the dividend) option pricing model for options on futures written in Cython with actual multi-threading, but I can't run it. (NOW FIXED, SEE L
Solution 1:
Okay I figured out what was wrong using dependency walker http://www.dependencywalker.com/ on the CyBlackP.cp35-win_amd64.pyd
file generated by Cython. It showed that 2 DLLs were not found: msvcp140_app.dll
and vcomp140_app.dll
which are just the x64 versions of MSVC OpenMP and CRT C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x64\
Microsoft.VC140.OpenMP\vcomp140.dll
and C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x64\Microsoft.VC14
0.CRT\msvcp140.dll
renamed with _app
inserted, and copied to the \CyBlackP\
project directory. I also updated my setup.py
like this which gets rid of the annoying import statement (now just from CyBlackP import CyBlackP
):
try:
from setuptools import setup
from setuptools import Extension
except ImportError:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import numpy as np
import os
module = 'CyBlackP'
ext_modules = [Extension(module, sources=[module + ".pyx"],
extra_compile_args=['/Ot', '/favor:INTEL64', '/EHsc', '/GA', '/openmp'],
language='c++')]
setup(
name = module,
cmdclass = {'build_ext': build_ext},
include_dirs = [np.get_include(), os.path.join(np.get_include(), 'numpy')],
ext_modules = ext_modules)
Post a Comment for "Cython Parallel Openmp For Black Scholes With Numpy Integrated, Serial Code 10m Options 3.5s, Parallel?"