- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
The following link ( https://software.intel.com/en-us/articles/intelr-distribution-for-python-2017-update-2 ) states that the Intel Python Distribution 2017 Update 2 uses the DAAL as a backend for K-means clustering in Scikit-Learn.
Using the following code, on Linux, does not seem to use the DAAL as reported by vTune. It still runs the original Scikit-Learn code written in Cython. Is there anything to do to enable the DAAL?
import os
from time import time
import numpy as np
from sklearn.cluster import KMeans
dim = 784
nb_points = 60000
nb_clusters = 10
nb_iterations = 20
nb_threads = 1
os.environ['OMP_NUM_THREADS'] = '28'
points = np.random.rand(nb_points, dim)
estimator = KMeans(init = "random", verbose = 1, max_iter = nb_iterations,
algorithm = "full", precompute_distances = False, tol = 0.0,
n_clusters = nb_clusters, n_init = 1)
print("Before computing")
time_begin = time()
estimator.fit(points)
time_end = time()
print("After computing")
print((time_end - time_begin) / nb_iterations)
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Velvia,
Check the following comment related to KMeans and DAAL: https://software.intel.com/en-us/forums/intel-distribution-for-python/topic/731351#comment-1903917
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Velvia,
I think that the entire thread will be useful because in this thread it was suggested to disable daal optimizations. So, probably the same problem applies to the issue you are reporting. I haven't tested your code in my configs. However, I remember the last comments of the thread I mention: https://software.intel.com/en-us/forums/intel-distribution-for-python/topic/731351
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Velvia,
Can you give me the output of your 'conda list', 'conda info', and your system specs?
Thanks,
-David
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi David.
Sure. Here it is:
[fayard@grisbouille Digits]$ conda info
Current conda install:
platform : linux-64
conda version : 4.2.12
conda is private : False
conda-env version : 4.2.12
conda-build version : not installed
python version : 3.5.2.final.0
requests version : 2.11.1
root environment : /opt/intel/intelpython3 (writable)
default environment : /opt/intel/intelpython3
envs directories : /opt/intel/intelpython3/envs
package cache : /opt/intel/intelpython3/pkgs
channel URLs : https://conda.anaconda.org/intel/linux-64
https://conda.anaconda.org/intel/noarch
https://repo.continuum.io/pkgs/free/linux-64
https://repo.continuum.io/pkgs/free/noarch
https://repo.continuum.io/pkgs/pro/linux-64
https://repo.continuum.io/pkgs/pro/noarch
config file : /opt/intel/intelpython3/.condarc
offline mode : False
[fayard@grisbouille Digits]$ conda list
# packages in environment at /opt/intel/intelpython3:
#
backports 1.0 py35_intel_6 [intel] intel
boost 1.61.0 py35_intel_3 [intel] intel
caffe 1.0.0 py35_intel_10 [intel] intel
conda 4.2.12 py35_intel_0 [intel] intel
conda-env 2.6.0 0 intel
cycler 0.10.0 py35_intel_5 [intel] intel
cython 0.24 py35_intel_16 [intel] intel
dbus 1.10.10 0
decorator 4.0.10 py35_intel_5 [intel] intel
distarray 0.6.0 py35_intel_4 [intel] intel
entrypoints 0.2.2 py35_intel_1 [intel] intel
expat 2.1.0 0
fontconfig 2.11.1 intel_7 [intel] intel
freetype 2.5.5 intel_9 [intel] intel
get_terminal_size 1.0.0 py35_intel_5 [intel] intel
gflags 2.1.2 intel_3 [intel] intel
glib 2.50.2 1
glog 0.3.4 intel_2 [intel] intel
gst-plugins-base 1.8.0 0
gstreamer 1.8.0 0
h5py 2.6.0 np111py35_intel_1 [intel] intel
hdf5 1.8.17 intel_0 [intel] intel
icc_rt 16.0.3 intel_5 [intel] intel
icu 54.1 intel_2 [intel] intel
impi_rt 2017.0.1 intel_2 [intel] intel
intelpython 2017.0.2 1 intel
ipykernel 4.5.0 py35_intel_4 [intel] intel
ipyparallel 5.2.0 py35_intel_1 [intel] intel
ipython 4.2.0 py35_intel_8 [intel] intel
ipython_genutils 0.1.0 py35_intel_5 [intel] intel
ipywidgets 5.2.2 py35_intel_1 [intel] intel
jbig 2.1 0
jinja2 2.8 py35_intel_5 [intel] intel
jpeg 8d intel_3 [intel] intel
jsonschema 2.5.1 py35_intel_5 [intel] intel
jupyter 1.0.0 py35_intel_5 [intel] intel
jupyter_client 4.4.0 py35_intel_2 [intel] intel
jupyter_console 5.0.0 py35_intel_5 [intel] intel
jupyter_core 4.2.0 py35_intel_5 [intel] intel
keras 2.0.2 py35_0
leveldb 1.18 intel_2 [intel] intel
libffi 3.2.1 1
libgcc 5.2.0 0
libiconv 1.14 0
libpng 1.6.28 intel_10 [intel] intel
libsodium 1.0.10 intel_6 [intel] intel
libtiff 4.0.7 intel_8 [intel] intel
libxcb 1.12 1
libxml2 2.9.4 intel_10 [intel] intel
llvmlite 0.15.0 py35_intel_0 [intel] intel
lmdb 0.9.18 intel_2 [intel] intel
lmdb 0.92 <pip>
markupsafe 0.23 py35_intel_6 [intel] intel
matplotlib 1.5.3 py35_intel_3 [intel] intel
mistune 0.7.3 py35_intel_1 [intel] intel
mkl 2017.0.2 intel_1 [intel] intel
mkl-dnn 0.3dev intel_0 [intel] intel
mock 2.0.0 py35_0
mpi4py 2.0.0 py35_intel_9 [intel] intel
mpmath 0.19 py35_intel_5 [intel] intel
nbconvert 4.2.0 py35_intel_5 [intel] intel
nbformat 4.1.0 py35_intel_1 [intel] intel
networkx 1.11 py35_intel_0 [intel] intel
nose 1.3.7 py35_intel_12 [intel] intel
notebook 4.2.3 py35_intel_7 [intel] intel
numba 0.30.1 py35_intel_11 [intel] intel
numexpr 2.6.1 np111py35_intel_11 [intel] intel
numpy 1.11.2 py35_intel_51 [intel] intel
olefile 0.44 py35_0
openssl 1.0.2k intel_3 [intel] intel
pandas 0.19.2 py35_intel_1 [intel] intel
path.py 8.2.1 py35_intel_7 [intel] intel
pbr 1.10.0 py35_0
pcre 8.39 1
pexpect 4.0.1 py35_intel_5 [intel] intel
pickleshare 0.7.4 py35_intel_1 [intel] intel
pillow 3.4.2 py35_intel_4 [intel] intel
pip 8.1.2 py35_intel_5 [intel] intel
prompt_toolkit 1.0.3 py35_intel_5 [intel] intel
protobuf 3.0.0 py35_intel_1 [intel] intel
ptyprocess 0.5.1 py35_intel_5 [intel] intel
pycosat 0.6.1 py35_intel_6 [intel] intel
pydaal 2017.0.2.20170126 py35_intel_0 [intel] intel
pygments 2.1.3 py35_intel_6 [intel] intel
pyparsing 2.1.4 py35_intel_5 [intel] intel
pytables 3.2.3.1 py35_intel_8 [intel] intel
python 3.5.2 intel_27 [intel] intel
python-dateutil 2.5.3 py35_intel_5 [intel] intel
python-gflags 3.1.0 py35_intel_1 [intel] intel
python-leveldb 0.193 py35_intel_0 [intel] intel
pytz 2016.6.1 py35_intel_5 [intel] intel
pyyaml 3.12 py35_intel_1 [intel] intel
pyzmq 15.4.0 py35_intel_3 [intel] intel
qt 5.6.2 0
readline 6.2 2
requests 2.11.1 py35_intel_1 [intel] intel
ruamel_yaml 0.11.14 py35_intel_1 [intel] intel
scikit-image 0.12.3 np111py35_intel_2 [intel] intel
scikit-learn 0.18.1 py35_intel_4 [intel] intel
scipy 0.18.1 np111py35_intel_10 [intel] intel
setuptools 23.0.0 py35_intel_4 [intel] intel
simplegeneric 0.8.1 py35_intel_5 [intel] intel
six 1.10.0 py35_intel_7 [intel] intel
snappy 1.1.3 intel_2 [intel] intel
sqlite 3.13.0 intel_13 [intel] intel
sympy 1.0 py35_intel_5 [intel] intel
tbb 2017.0.4 py35_intel_0 [intel] intel
tcl 8.6.4 intel_16 [intel] intel
tensorflow 0.10.0rc0 np111py35_0
terminado 0.6 py35_intel_6 [intel] intel
theano 1.0 py35_intel_0 [intel] intel
tk 8.6.4 intel_18 [intel] intel
tornado 4.4.1 py35_intel_3 [intel] intel
traitlets 4.2.2 py35_intel_3 [intel] intel
wcwidth 0.1.7 py35_intel_5 [intel] intel
werkzeug 0.12.1 py35_0
wheel 0.29.0 py35_intel_5 [intel] intel
widgetsnbextension 1.2.6 py35_0 intel
xz 5.2.2 intel_15 [intel] intel
yaml 0.1.6 intel_10 [intel] intel
zeromq 4.1.4 intel_5 [intel] intel
zlib 1.2.11 intel_0 [intel] intel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Velvia,
Thanks for your reply. I've asked engineering for further clarification on the DAAL functionality under scikit-learn, which will hopefully shed some light as to why your example is reverting back to normal Cython.
Thanks,
David
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Velvia,
There were some updates on our channel. You can try to update scikit-learn with
conda update -c intel scikit-learn
Denis.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
We've released Update 3, so you can try with it too.
Denis.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page