ProjectQ-Framework / ProjectQ

ProjectQ: An open source software framework for quantum computing
https://projectq.ch
Apache License 2.0
882 stars 272 forks source link

Basic install uses the slow simulator #202

Closed vtomole closed 6 years ago

vtomole commented 6 years ago

Installing with python -m pip install --user projectq

And then running: https://github.com/vtomole/qchackers/blob/master/software/projectq/epr.py

Gives me:

vtomole@vtomole:~/qchackers/software/projectq$ python epr.py 
(Note: This is the (slow) Python simulator.)
Measured 1

On: Ubuntu 16.04.2 LTS

thomashaener commented 6 years ago

Do you have gcc and g++ installed? Could you send me a detailed output of the installation process? Also, could you check if there is a .so-file in the installation dir projectq/backends/_sim/ ?

vtomole commented 6 years ago
vtomole@vtomole:~/qchackers/software$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.4' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 
vtomole@vtomole:~/qchackers/software$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.4' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 

I used pip to install this; I didn't download the repo. Where do I find projectq/backends/_sim/?

thomashaener commented 6 years ago

To find out where it is installed, run python and then do

import projectq
projectq.__path__
vtomole commented 6 years ago

Yes. It's there

vtomole@vtomole:~/anaconda3/lib/python3.6/site-packages/projectq/backends/_sim$ ls
_classical_simulator.py                  __init__.py  _simulator.py
_classical_simulator_test.py             __pycache__  _simulator_test.py
_cppsim.cpython-36m-x86_64-linux-gnu.so  _pysim.py
thomashaener commented 6 years ago

Okay, that means that your python version was compiled using gcc version < 5.1 or something like that (i.e., they are not compatible). I would download an older version of gcc right quick and re-run the installation after having uninstalled projectq. What does python say when you run it? It should say which version of gcc was used.

thomashaener commented 6 years ago

Or are you using conda? In this case, try conda install libgcc as an alternative to installing an older version of gcc.

vtomole commented 6 years ago
Python 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:09:58) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
vtomole commented 6 years ago

@thomashaener conda update --all solved it. Thank you so much!

thomashaener commented 6 years ago

Great! Enjoy :-)