Sunday, October 28, 2012

Compiler books for optimizations

Compiler books are an important asset during the course of phd, not only as a reference book but also as a inspiration source. Sometimes you just have to apply a number of old and well know techniques to your topic to achieved the desired results. I recently started looking for a number of compilers books that i had access to a number of books from the university's library. Some of them are:





Optimizing Compilers for Modern Architectures: A Dependence-based Approach. One of the best compiler books that covers current state of art optimizations. A phd student must first start reading this book before starting working with transformations and optimizations. The book covers classic topics of compiler optimization such as: vectorization, parallelization, enhancing find and coarse grain parallelism, memory hierarchy management, and instruction scheduling. The book contains a large number of examples for explaining the performance impact  and drive the programmer to write their programs for obtaining best possible performance. (Amazon)






Front Cover
The Compiler Design Handbook. There are two versions of the books. The first edition focus mostly on well know transformation techniques, such as instruction scheduling, data flow analysis SSA form, register Allocation etc. On the other hand the second editions refresh for the new advances in the compiler regions, such as Worst-Case Execution Time, energy analysis static program, energy-aware compiler optimizations, analysis for security, and dynamic compilation. Each chapter is self-contained and treats its topic in depth. The book offers a unique opportunity for researchers to refresh and update their knowledge, refine their skills, and prepare for future innovations.






Front Cover
Compiler Construction: Principles and Practice. This book is introductory to the compilers. The authors use mostly the C-like language in their examples. If you are curious to understand how the theory about compilers applies to the C language, then this is your book!  (Amazon)






 

Engineering a Compiler:  Mostly for introduction, but also some advance topics, such as  object-oriented languages, construction of static single assignment forms, instruction scheduling, and graph-coloring register allocation.









Compilers: Principles, Techniques, and Tools. The classic dragon book. I studied a bit during the undergraduate course. Only introductory and a bit outdated. However, it still remains a reference point for newcomers. (Amazon)









Programming Language Pragmatics: Comprehensive programming language textbook. Taking the perspective that language design and language implementation are tightly interconnected. Includes topics and comparison between many languages including: Java 7, C++, C# 3.0, F#, Fortran 2008, Ada 2005, Scheme R6RS, and Perl 6.














Advanced Compiler Design & Implementation. This book is a step ahead from the introductory books. It starts describing more realistic implementations and gived a coverage for the optimization techniques. It gives good detail on all major approaches and is up-to-date on important techniques like SSA form and partial redundancy information. The downsize is the size of the book. (Amazon).


Friday, September 7, 2012

Conferences for compilers

Here is my list with the conferences suitable for submitting compiler papers, with an approximation of the deadline:


CS                               Deadline: ~January 10
Computing Frontiers  Deadline: ~January 10
PACT                           Deadline: ~March 10
Supercomputing          Deadline: ~April 20
HiPEAC                       Deadline: ~June 10  
POPL              
                Deadline: ~July 1
ASPLOS                      Deadline: ~July 10
PPoPP                         Deadline: ~August 10
CGO                            Deadline: ~September 10
IPDPS                          Deadline: ~September 25
CC Deadline: ~October 1st
PLDI                             Deadline: ~November 10



Workshops:

LCPC 2012                  Deadline: ~May 20



Tuesday, July 31, 2012

Getting your songs from grooveshark!


gd_logo.png (128×128)
Grooveshark is an search engine, and streaming service for music. Users can stream and upload music that can be played immediately or added to a playlist. I 'm using grooveshark quite offen during my working hours. However, one day i decided to find a way to download music to my laptop for playing music offline or transfer them to my phone. After Googling a bit, i came up with the Groovedown. It is a java application and it is well mantainated. In linux you can run the application using this command:
java -jar GrooveDown.jar
Everything worked fine without a problem, and in a few minutes i had my entire playlist downloaded.


Wednesday, July 25, 2012

Skype 4

Last days i had some serious problems with the Skype. Either was not working, either the applicaiton was crashing. The version i was using was 2.2, quite old. So i though it was time to update to the latest version. So i did it:



What i like: fixed the issue with the v4l1compat.so library, now works out of the box; new icons, they look much more fresh. Of course the stability of the application improved as expected.  What i don't like: the new conversation window, although i believe i will get used it; and the longer load time, although the disk usage is lower than before (at least i think so).

Bottom line: give it a try, it is worth it. Even for the stability reasons or because you want to change the view!

Back to Barcelona... and ready for vacations!

Back home! After spending two and half months in Toronto working like crazy i 'm back. For some reason i feel much more relaxed. Maybe its the climate, maybe the people, maybe that the vacations are near. Yes, i 'm leaving for vacations next week. Due to a small health problem (acid reflux), this time i will avoid travelling  around Greece and exploring new places. I will just enjoy the sun and the sea doing nothing in my island! Well, of course i will check emails, but for sure i will not answer them. Funny, i reach again my limits.

Less than one week left and i really continue to work like crazy. But, whatever... i will soon leave everything behind for 12 days :)

rhodes1.jpg (500×331)

Thursday, June 28, 2012

TextLint: A tool for detecting common scientific writing style errors

TextLint Logo.
TextLint Logo.
Poorly written scientific text fails to deliver clear ideas and its usually a good reason to get a paper rejection. During the paper writing i usually consult different sources about the writing style and avoiding common bugs in  writing. Initially, i was thinking to create a shell script for detecting the common mistakes on my papers.  Then, i came up to this TextLint project. They provide a download package for Win/Mac/Linux and they also provide an online form to test the results. However, some of the proposed changes on the text are subjective, others are "must": you must decide by yourself what is the best style for your text. I definitely suggest to all to test it  and especially for newcomers (i belong to this category :)). 

Sunday, June 17, 2012

First NOAA 17 reception

I used the "cheap" solution of RTL2832 as SDR receiver for trying to receive the images from the NOAA weather satellites. The setup was far from ideal: very bad antenna and with very limited receiving angle (<10s of data ?). I was not expecting to receive anything but i got something:

Image received from NOAA with RTL Dongle and SDR using APT.
Image received from NOAA with RTL Dongle and SDR using APT.

Not very promising heh? Well not but this was the first try. There are two images with different wavelength of light, however the reception was so bad  that you can't see any difference. You can see the grid of the map in red color, the Greenland, and the Iceland in the center with green color. There are also a green shape in the bottom right, however i 'm not sure what island is this (UK? Ireland ? The distance is not so far ). The image is from NOAA 17, and i used the HDSDR for recording the satellite transmitted sound and WXtoImg to reconstruct the final image.

Hopping for a better and stronger signal reception in the future. The weather now is rainy (Canada...) and it is not good idea to have all equipment outside.


Update: I was able to receive NOAA 19 with a external TV antenna, SDR# and WXtoImg. For more information you can find here.

Saturday, May 19, 2012

A very lightweight pdf viewer!

Last days i was testing the speed and the quality of the pdf viewers on Linux. Xpdf was out of question. Acrobat reader a good quality but really heavy solution for viewing the files. Another option is the default evince but sometimes the pdf is bit blurry (if for example is scanned). Another new good alternative is the MuPDF. So i did a small test: i used this pdf to test the quality of the pictures:


A better zoom in at the equation shows more details about these three programs:

For me, the MuPDF is the winner, not only because it has the best quality between the other, but for its speed. Its really fast, and it has the same keyboard shortcuts with VIM: ideal solution for me. The mos serious drawback of the viewer is the absence of "copy" from the pdf file. 

Linux mint 12 finally

Finally, after almost four years i decided to upgrade my old Ubuntu 9.04 to something newer. I wanted to avoid installing "short lived" distributions in terms of repositories support and the same time avoid experiments with distributions that require compiling everything. I even thought to put FreeBSD. Nice operating system, you have both options to compile the packages or download the binaries. But, most of all i liked the gnome2 they are using. Unfortunately, i test on the VM showed me that not everything is working ok with the source packages (ports was not working well for gnome2 - clean install..), but it was extremely fast!

So, i have either to go for Fedora (too unstable for my taste), Ubuntu (where is gnome???), or something else. So i selected to go with Mint 12 64bit. It has long term support, includes gnome 2/3, has the same repositories with Ubuntu and includes some nice meta-packages for automatic installation of video/audio codecs. The installer recognized my old Ubuntu installation and moved my home directory without problems.

Then, in started installing the 32bit libraries. A mess, after installing manually some debian packages the whole packaging system broken and i had to remove critical parts of the system. So, i had to install it again and with more caution. This time i had to edit the deb packages to remove manually the dependencies with other packages. And it worked well. What were the packages that i had problem: Lotus Notes  and Lotus Sametime (you need them if you want to read mail from IBM). I had to follow a set of instructions for installing them:  i had even to download and compile a file to make it work properly.  Installation was much easier in 10.04 LTS versions of Ubuntu. I can't imagine how the installation will be with Ubuntu 14.04!

After spending a Sunday evening,  everything works fine now. I still had to use some old tricks for making skype to work with video (use with LD_PRELOAD to 32bit version of v4l1compat.so), but everything works fine now. Well, i still missing the old gnome setting and support.. but i guess i just have to move on.

Friday, May 11, 2012

Use google scholar to track your publications and citations!

I started using the Google scholar for searching articles a couple of years ago. I 'm using it for getting paper from multiple sources or exploring for finding new stuff. It was an good alternative from just searching in the Google. As the years passed it seems the engineers in Google have improved a lot the search algorithm and created some additional tools that can help the tracking down your publications. You have just to follow the citations sign up form. After confirming your name and email address you are ready. You can also upload your own photo and make your profile public, allowing others to search you. An example of public profile can be found here. One of the things i like most is the bar graph with the number of citations per year. Also, you can see citations per publication per year. You can track the different topics and get an idea what is on "fashion" and what not. Unfortunately, my profile is almost empty, but i hope things will get better in the future...

Wednesday, April 11, 2012

A cheap solution for Software Defined Radio (SDR)


A software-defined radio system, is a radio system where components are implemented in software instead of special hardware. A recent post in the slashdot about an implementation of this system using very cheap DVB-T/DAB receivers. Following up the links, i discovered the reason behind this: the RTL2832U chip. Searching a bit more i got a list of supported hardware. Searching in local shops i bought a Lifeview LV5T Deluxe usb receiver and i started to play (~20 euro).

First of all, i had to install a different usb driver from the default. After that you have to download and install the HDSDR program. Finally, you have to install a plugin at the top of HDSDR to control the receiver. First experiences seems promising: receiving local radios and local tv stations. The HDSDR application supports FM demodulation, so i was able to hear (with some modifications in the sample rate etc) local radio. Unfortunately, the receiver does not support lower frequency band less than 64 MHz. Moreover, the quality of the software demodulation was low, and the sound includes a great amount of noise, although you can understand the conversations. I 'm not sure about the source of the low quality results, but i had to play with the sample rate of the us device (for the radio i used 0.90001 MS/s with 96000 output sample rate) and for exploring the frequency band over 300MHz, 3.1MS/s.

Here is an example screenshot running the HDSDR and searching the band around 88 MHz:

HDSDR receiving 86.4 MHz. Note that the signal is an artifact as explained in comments.
HDSDR receiving 86.4 MHz. Note that the signal is an artifact as explained in comments.
Notice the three radio stations on the right (FM modulation) at 88, 88.4, and 88.7 MHz. The station at 88.4 MHz has the lower signal. Moreover, in the left screen we can see a very strong signal at 86.4 MHz which is out of the typical FM spectrum and the modulation does not seem to be FM. The reception was done using a very small antenna included in the usb receiver from the ground floor. Tomorrow, i'm planning to use an old TV antenna (not very good for the FM band.. but i think it will be ok for my tests) and start exploring the different bands :).


Saturday, March 10, 2012

Hello world!

Hello world!

I was initially thinking to introduce my self, to explain who am i and what i ’m doing. Unfortunately time is limited as usual. The reason i created this blog is to give a glimpse of my way of life and to express express some thoughts. And, yet here i ’m as CS PhD student running like crazy, not having time to even write my first post! What a pity... i hope for more free time in the future, as some people would say, hope dies last.

A small introduction about me: I am currently a PhD student at the Department of Computer Architecture (DAC) of the Technical University of Catalonia (UPC) in Barcelona, Spain. I usually visit IBM software labs in Toronto in the summer, as part of my involvement on various projects related to my studies. Before that, i was living in Herakleion for six years, where i did my bachelor and master studies in the University of Crete.