Presentation Supercomputing Computer Database SIEpedia SIE News

Follow @SIEie_IAC
Index of all issues September / October 2017 May / June 2017 January / February 2017 November / December 2016 July / August 2016 November / December 2015 September / October 2015 September / October 2014 May / June 2014 March / April 2014 January / February 2014
For earlier issues, please browse the Index


The newsletter of the SIE de Investigación y Enseñanza N. 31 - July/August 2009

The compiler war!

If you think that all compilers are born equal, you are very wrong. In the case of C and Fortran, at the IAC you have mainly three choices: the GNU suite, the Intel compilers or the PGI ones. Leaving aside the documentation or the tools (parallel support, debuggers, profilers, etc.) that come with each of them, choosing the right compiler and the right compiling options can make your executable considerably faster. As a basic example, we got the spectral-norm benchmark, compiled it with the three compilers and basic optimization options, and the table below summarises the results in a 3GHz Pentium4 machine (percentages are given over the fastest version). Does this mean that you should always use the Intel compiler? Certainly not!! It just means that if you want the fastest execution time you should take timings, which can show a completely different picture depending on the code, the machine, the compiler and the compiler options that you use...
  Intel (-fast) PGI (-O4) GNU (-O5)
C code 16.68 sec (100%) 17.25 sec (103.42%) 26.86 sec (161.03%)
Fortran code 16.68 sec (100%) 17.20 sec (103.12%) 20.47 sec (122.72%)

Helping you to live in a parallel universe...

Some of you might not be aware that if you are in need of speed, the SIE can help you to parallelize your code. As an example, during the past weeks we helped Jorge Sanchez to parallelize his IDL K-means clustering program. The parallel version of the code was developed using Fortran and MPI (Message Passing Interface), and we managed to obtain a very scalable and efficient new code. With it the performance obtained is much better than the equivalent IDL code. As an example, 100 executions of the parallel code using 48 Intel Xeon CPUs (2.4GHz) of one of our clusters took in the order of 1 hour. At the same time, one single execution with the IDL code using a 8-core (Intel Xeon 2.66GHz) computer takes in the order of 4-8 hours. Get in touch with us for more details...

Programming languages and bottles of beer

Have you ever wondered how many programming and scripting languages and variants exist out there? Well, it seems that there are more than 1200, at least according to the 99 Bottles of Beer website, which holds a collection of the Song "99 Bottles of Beer" programmed in different programming languages (see for a striking example of what may happen when one values more the "artistic" side of programming rather than clarity). Admittedly, some of these programming languages have somewhat suspicious names and are quite unlikely to become popular in the academic world (we can tell you for sure that the SIE does not plan to provide support for such languages as Brainfuck, Cow, or Whitespace). However, it's still astonishing to see that there are hundreds of serious, legitimate, different programming languages in active use.
Which leads us to the next, perhaps more interesting question: how many different types and brands of beer are there?

Less known, but useful Python gems

As you know, one of the best selling points of Python is its impressive array of add-on modules, and there are many python-based applications that can be of interest for astronomers. Some are well known (for instance pyraf, pyfits, numpy), others may have gone unnoticed, but still can be very useful. Here go a few selected ones:
  • Blender, a free open source 3D content creation suite. Its magnificent GUI will take your breath away. Just type blender to launch it.
  • pygmentize, as its name suggests, is a syntax highlighter, with multiple output formats. Type pygmentize to use it.
  • idl2python provides tools for converting programs and scripts written in the IDL programming language to Python. The command is idl2python.
  • f2py is a Python extension tool for creating Python C/API modules from (handwritten or F2PY generated) signature files, or directly from Fortran sources. Unfortunately for now it only works in 32bit machines.
  • sympy is a Python library for symbolic mathematics. For more info, see
  • APLpy is a Python module aimed at producing publication-quality plots of astronomical imaging data in FITS format.
To find what other Pyhton modules are installed here at the IAC, please see

Talon, a useful Firefox extension

If from time to time you need to save images from the Web, and add annotations for, say, a presentation or a manual you are writing, Talon, a Firefox extension which integrates Falcon right in the browser, may be the right tool for you! With Talon, you can capture areas, whole pages, or the entire application window; then you can annotate the image with arrows, lines, squares etc., and text, and save it on your desktop. For a more detailed description of the Talon and Falcon capabilities, please read this Sitepoint article. Also worth mentioning is Canva, a simple, drag-and-drop, design software that is completely online and free to use.
SIE de Investigación y Enseñanza :: N. 31 - July/August 2009 - Contact: