Sunday, December 21, 2014

Create a CUDA Center in your country

In a previous post, we reported on the Intel Parallel Computing Centers (IPCC) and the opportunities that open up by bringing to your country a specialized laboratory on accelerator technology. This time, it is the turn of CUDA centers, a similar and well-established initiative by NVIDIA.

The most recent release of the Top500 list reveals the relevance of accelerators in the construction of modern supercomputers. Out of the top 10 systems, 5 use accelerators, 3 of them use NVIDIA graphic processing units (GPU). Moreover, there are 16 systems in the first 100 that use NVIDIA GPUs. Power concerns are driving a wider adoption of GPUs to build new systems. A look at the top 10 systems of the Green500 list (the supercomputers with the best FLOPS/Watt ratio) shows that 8 systems use NVIDIA GPUs. In addition, the Department of Energy program Coral, which will provide the next set of elite supercomputers in the United States in 2017, will include IBM hybrid machines combining POWER processors and NVIDIA GPUs.

Behind NVIDIA's strategy to democratize the use of GPUs, there is a language extension to offload computation to the GPU. This language extension is called Compute Unified Device Architecture, CUDA. Programs written in C, C++, or Fortran can be modified to make use of the graphic's card in a computer as a general purpose graphic processing unit. Therefore, CUDA makes it possible to accelerate kernels in traditional scientific computing routines. Also, new scientific fields are explored to measure the impact of CUDA in performance. NVIDIA offers several academic programs to foster the use of CUDA in an institution. Among those programs, there are CUDA centers. These centers aim at improving education, research, and collaboration in CUDA. There are 3 types of CUDA centers:

  • Teaching center: designed to improve training on CUDA programming, support research, and complement advanced parallel computing education. The benefits of a teaching center include the donation of CUDA-enabled GPUs, education material, teaching assistant funds, and technical support on CUDA technology.
  • Research center: aimed at pushing the envelope on scientific applications by using CUDA enabled GPUs. Among the benefits of a research center are participation in conferences, assignment of CUDA liaison, donation of GPUs, inclusion in a larger network of CUDA developers, and promotion in several NVIDIA programs.
  • Center of excellence: oriented towards the recognition of groundbreaking research in GPU computing. This last type of center looks for a stronger relationship between NVIDIA and the institution and provides a collaboration channel for the development of new projects.

There are dozens of CUDA centers around the world. In particular, Latin America has a good number of centers distributed in 7 countries. The figure below shows the distribution of CUDA centers in several Latin American countries. A clear trend in all countries is to have more teaching centers than research centers. This trend is possibly explained by the way CUDA maturity evolves: starts with training, followed by programming projects, next research, and finally state-of-the-art CUDA development. Brazil seems to be the most advanced country in terms of CUDA maturity. In fact, it is the only country featuring a center of excellence.


The Computer Science Institute at the Universidade Federal Fluminense in Rio de Janeiro, Brazil, hosts the CUDA Center of Excellence, the only of its kind in Latin America (so far). Led by Prof. Esteban Clua, the center focuses on the development of applications for cosmology, oil exploration, and software engineering. Additionally, the center also provides training opportunities for those willing to enter into the CUDA world.

If you wish to apply for a CUDA center in your institution, visit https://developer.nvidia.com/academic-programs for more information.

Tuesday, December 16, 2014

Supercomputing Center in Colombia will host the Aerospace Data for the European Galileo Project

The Center for High Performance and Scientific Computing (SC3) of the Industrial University of Santander in Colombia hosts the Galileo Information Center for Latin America on behalf of the Galileo Programme by the European Union, and supports a number of data analytics projects for applications based on Global Navigation Satellite systems. To know more about this, we interviewed Professor Raul Ramos-Pollan, Leader in Big Data Research at SC3 and responsible for the Galileo Information Center. 

Q: What is the Galileo Project and who is leading it? 

A: The Galileo program is the Global Navigation Satellite System being built by the European Union and the European Space Agency (ESA). It will consist on a constellation of 30 satellites providing world wide positioning services complementary to the GPS system from the US, GLONASS system from Russia and the Beidou system from China (expected to be completed by 2020). In fact, all together they are expected to provide high precision positioning based on signals from satellites from different constellations. Currently the Galileo constellation has 6 satellites in orbit and is expected to be fully deployed by 2020. 

Q: What is the purpose of the Center of Galileo Information for Latin America? 

A: In this multi-constellation context a wealth of opportunities arise for new applications across industry and academy (transportation, agriculture, air navigation, etc.), providing sub-meter positioning accuracy to the common user and not only to the specialized ones. In this sense, the Galileo Information Center for Latin America has several goals: (1) to raise awareness on the development of the Galileo constellation, (2) to identify applications of specific interest for the particularities of the region and (3) to be a feedback channel from the region to the EU for considering opening future funding opportunities (specially the Horizon 2020 R+D program) 

Q: Why is it important to have a partnership between government, industry and academia? 

A: The GNSS industry has been traditionally fostered in tight cooperation among industry, government and academia, including the EU space program develop by ESA. As oppor
tunities for multi-constellation based GNSS applications are being identified, this tight partnership is key to enable the application development, from research to production.

Q: What is the role of SC3 in this partnership and how is this beneficial for the region? 

A: SC3 hosts the Galileo Information Center for Latin America at the Guatiguara Technological Park, an initiative from the Industrial University of Santander to endow itself with the resources to attract industry and foster collaboration with academy. This scenario was considered to be aligned with the goals of the Galileo Information Center and we expect (as it is already happening) to have a special impact in the region in terms of access to opportunities, information channels and expertise. 

Q: What opportunities this projects brings in terms of data-intensive applications? 

A: As multi-constellation GNSS receivers start to emerge (or the actual ones are being adapted) a new order of magnitude of data generation is expected, let alone by the fact that a receiver is going to be seeing at least 4 satellites from each constellation and this data has be to used to obtain accurate positioning. Apart from this, GNSS monitoring networks are also going to be producing more and more data enabling opportunities in industry and academy for data intensive applications. Just to mention a few, this includes ionospheric modelling, climate, seismic research, personalized location based services, transportation in urban canyons, precision agriculture, etc.

Tuesday, December 9, 2014

Profile of national HPC developments in Latin America - Part I

In this series of posts, we will present some of the national developments in high performance computing seen in Latin American countries. Today, we will focus on the two largest countries of Latin America (in area): Argentina and Brazil.

Argentina - SNCAD
Argentina's National High Performance Computing System (SNCAD, Sistema Nacional de Computación de Alto Desempeño) was created in 2010 for the purpose of recommending policies and coordinating actions to maintain and update computational resources in the country. It currently supports seventeen computing centers distributed over nine provinces by helping fund machines and support personal.

SNCAD computing resources are not integrated. That means scientists cannot easily run parallel software over different resources, and are required to request accounts on each computing center. Accounts may not even be possible in some cases, as centers are independent and have their own local regulation. In this context, a sensible advance for SNCAD would be to assist in the development of a national research grid.

Brazil - SINAPAD
The Brazilian National High Performance Computing System (SINAPAD, Sistema Nacional de Processamento de Alto Desempenho) is composed of nine HPC national centers (CENAPADs) hosted by federal universities, institutes, or laboratories distributed over seven different states. These HPC national centers hold some of the fastest supercomputers in Latin America. SINAPAD was formally created in 2004, while the oldest of its national centers started back in 1992.

SINAPAD's computational resources include over 10,000 CPU cores and 28,000 GPU cores for a total of 171 TFLOPS of peak performance. Most computational resources are Bull, SGI, and Sun platforms. These resources are available through specific web portals only. Each portal enables the execution of specific non interactive software, such as Brazilian developments on the Regional Atmospheric Modeling System (BRAMS) and a probabilistic primality test. Although limited, this scheme enables research by some scientists that would not have enough resources for their experiments otherwise.

Tuesday, December 2, 2014

MPI4Py: From Latin America to the World!

The Python programming language has become one of the big three languages in HPC (along with Fortran and C/C++). Thanks to an extended ecosystem of scientific libraries, development tools, and applications, Python has been widely adopted by many scientific communities as a high-level, easy-to-use, scripting language. Plugging Python code with pre-existing programs in other languages is straightforward. Therefore, Python makes prototyping new computational methods very easy and powerful. It comes at no surprise that your favorite HPC library, whatever that might be, has a Python interface.

The same is true for the Message-Passing Interface (MPI), the standard mechanism to implement large-scale parallel applications in HPC. The last decade brought several competing alternatives to use MPI with Python: PyMPI, PyPar, and MPI4Py, among others. All those libraries shared the same goal of providing an implementation of the MPI standard to Python programmers. However, after years of dispute, MPI4Py emerged as the clear winner. Interestingly, MPI4Py was developed in Latin America by Lisandro Dalcin. Lisandro is a researcher at the Research Center in Computational Methods in Argentina, who graduated from Universidad Nacional del Litoral, in Argentina, with a PhD degree in Engineering. He is the author of MPI4Py, the most popular implementation of MPI in Python, PETSc4Py, and SLEPc4Py. He is a contributor of Cython and PETSc libraries. He was part of the PETSc team who won the R&D 100 Award in 2009.

MPI4Py offers a convenient, yet powerful way to use the MPI-2 standard in Python. The design of MPI4Py makes it possible to seamlessly incorporate message-passing parallelism into a Python program. One important feature of MPI4Py is its ability to communicate any built-in or user-defined Python object, taking advantage of the pickle module to marshall and unmarshall objects. Thus, writing a parallel program out of an object-oriented Python code does not involve a huge effort on writing the serialization methods. In addition, MPI4Py efficiently implements the two-sided communication operations of the MPI-2 standard (including non-blocking and persistent calls). To top it all off,  MPI4Py provides dynamic process management, one-sided communication, and parallel I/O operations.

The MPI4Py project demonstrates the potential of hard work on collaborative efforts in the region. For more information about MPI4Py, visit the webpage http://mpi4py.scipy.org.