Julia @ Ubuntu 12.04

Julia has some issues when I compiled in Ubuntu 12.04. I modify a little on top of http://ubuntuhandbook.org/index.php/2013/08/install-gcc-4-8-via-ppa-in-ubuntu-12-04-13-04/

1.)  at terminals

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

2.) Then install gcc 4.8,  g++ 4.8, gfortran-4.8

sudo apt-get update; sudo apt-get install gcc-4.8 g++-4.8 gfortran-4.8

3.) Once installed, run following commands one by one to use gcc 4.8 instead of previous version.

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20
sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-4.8 20

Advertisements

Finish my internship at Synopsys

I finished my internship at Synopsys Inc. Mountain View, CA, Friday, Sept. 26th (To who does not know Synopsys, it is one of top-notch EDA software companies, which also extends it business scope to other areas, such as code analysis/testing, e.g. Synopsys bought Coverity half-year ago). I took many photos with my teammates, including Director Harish, Manager ZongWu, Mentor Dustin, Qing, Wenwen. Li Chen left early so that I owe him a picture.  Wenwen thought the scene is like a small graduation ceremony and too sensitive.

This summer changed me from MATLAB programming for academic prototyping mode to intensive C programming of building product as well as research prototypes. This reminds me of my research experience in Tsinghua University two-year ago. Luckily, I managed to finish 2.5 of 3 projects assigned to me (previous intern’s assignment at our group is one, I think). The 0.5 left project is actually a take-home fun research project. , the 1 of 2.5 project should come out with the next release in the Synopsys products (you can guess the part resides in the dominating products of Synopsys). Other 1 may go to the next stage of research & development. This is a rewarding experience, especially put me to the edge of current problem met by the industry, which should help me to target, define and formulate problems.

PS: The EDA algorithm is very challenging and physical-related, but less known to current CS people. The connections from EDA algorithms to computer theory exists in a broad way, so this area is not only about code tuning. We need to deal with graph partitioning, and numerical algorithms. I also find matrix exponential is also applied to community detection, in KDD conference. 

Dropbox project Pyston’s setup

Finally, I have my Pyston  setup and execute python program. The installation guide is here. The time-consuming part is the plugin/prerequisite packages (also my laptop is mac, so I need to use Stanford University’s eduroam to access my server at University of California during this summer. Sometime it really slow my progress due to the non-local build up). For a beginner, I suggest to use the name “pyston” and “pyston_deps” at your “~/” location. If you change the name “pyston”, say, “pyston_howard”, you need to modify Makefile too. Otherwise, the “make check” will give you all “time-out” results. In my current version, the pass status test case in my machine has some randomly issue. The trouble maker is ~/pyston/test/tests/thread_memory_model_test.py, which cannot always pass. Sometimes, the result is Failed (time-out).

When I configured llvm, for pyston/src Makefile, we need llvm has following modes:

Debug-Asserts: make ENABLE_OPTIMIZED=0 DISABLE_ASSERTIONS=0

Release-Asserts: make ENABLE_OPTIMIZED=1 DISABLE_ASSERTIONS=1

Release: make ENABLE_OPTIMIZED=1 DISABLE_ASSERTIONS=1

The documented progress of pyston project can be found here in Kevin’s blog with tag “pyston”. More timely updates can be found here in github. According to the current development theme (email from pyston-dev) sent by Kevin: there are a couple big efforts are needed to boost the performance, e.g. improve/replace the implementation of GC performance, check here; improve Python-to-LLVM-IR time to improve inefficient analyses by hash maps of strings, check here.

PS: The reason why I play around Pyston is that I am stuck in the dorm of Stanford University before leaving for my research work at San Diego. The stay is caused by the fact that my car has some issues on the lights, and I had it sent to a body shop to repair. How inefficiency when insurance company cooperates with body shop/dealership. Bazinga?! I want to remind myself of the compiler and programming language courses, and reuse LLVM for my future research and potential ideas. Besides, I am a dropbox pro customer, who actually pays for the service every month! I would love to know what is going on there, even from outsider view. Also, please keep Julia in mind!