Tuesday, February 24, 2015

SCALAC: Advanced Computing Services for Latin America and the Caribbean

Nation or even continent-wide programs are a fundamental piece in developing high performance computing expertise. Two examples of that are the XSEDE in the United States and PRACE in Europe. XSEDE is a program that assembles HPC resources from several supercomputing sites. At the time of this writing, XSEDE lists 10 supercomputers, 2 visualization clusters, 6 storage systems, and 1 high throughput cluster. XSEDE has sparked a huge amount of applications and new research directions. Similarly, PRACE encloses 6 supercomputers and has 25 member countries in Europe. Programs of this nature provide a fertile ground to develop new and powerful HPC applications, mainly because it is easier to find people with the right expertise on a particular field, the right computing infrastructure, and a formidable source of feedback.

In the same vein, SCALAC, Spanish for "Advanced Computing Services for Latin American and the Caribbean", aims at providing the region with a program that integrates consolidated advanced computing centers. Such program would integrate HPC experts, service providers, and supercomputers. Therefore, the necessary resources would be within reach for scientist and engineers eager to develop groundbreaking simulations.

The SCALAC project was formally established in March 2013 with the Bucaramanga Declaration, signed by the original members in the Industrial University of Santander, in Bucaramanga, Colombia. The SCALAC project is supported by a bigger program in the region called RedCLARA. Short for Latin American Cooperation in Advanced Networks, RedCLARA has implemented a high speed interconnect among several countries in Latin America. SCALAC was inspired by other initiatives in the region, namely project GISELA (Grid Initiatives for e-Science virtual communities in Europe and Latin America) and grid computing projects EELA and EELA-2. The operational center of SCALAC is a distributed system installed in the three major participants: Mexico, Colombia, and Brazil. In addition, Costa Rica and Ecuador provide small scale services. As a supplement, the Barcelona Supercomputing Center (BSC) and the Center of Research in Energy, Environment and Technology (CIEMAT) in Spain provide international support.

The goal of SCALAC is threefold:
  • Support high-level scientific endeavors, providing supercomputing platforms for applied and fundamental research projects.
  • Support to academic activity, forming HPC specialists at different levels (technical, specialized, scientific).
  • Support HPC technology transfer and use of HPC platforms for projects focused on the most important needs of the region (climate, health, and security).
For more information on the project, please visit http://www.cenat.ac.cr/computacion-avanzada/scalac.

Tuesday, February 17, 2015

Latin american children meet HPC

As a follow up of our previous post about teaching HPC to undergraduate students, in this post we go beyond that, we want to reach children! Of course, we are not talking about asking a ten-years old to program a hardware device with thousands of cores. We are talking about the importance of exposing children to the HPC world from early education stages. In the same way children are capable to understand what a telescope or a microscope is, they also should be able to have some basic notions about one of the most important tools for scientific discovery: supercomputers. But we should not ask them to understand the intricate technical details about how a supercomputer works; what is important is to explain them what is a supercomputer, what is it used for and the advantages that they offer to many scientific domains. This is critical to awake the curiosity of young generations and to motivate them to go into science and technology careers.

In this ground, Chile is already several steps ahead. Indeed, the National Laboratory for High Performance Computing (home of the Leftraru supercomputer) organized several visits from high schools students to the laboratory. First, about fifteen girls from the Liceo Carmela Carvajal de Prat were received by the scientific director Jaime San Martin, the project manager Susana Cabello, and the technology manager Gines Guerrero. They received several informal talks explaining the purpose of supercomputers, what they look like and how they are used for different purposes. In addition, the engineer Alex Di Genova explained how HPC is important for bioinformatic research. The turn of the gentlemen came several days later, when about thirty boys from the National Institute visited the premises of the NLHPC. Again, the main concepts of HPC were explain in short talks, but this time astrophysics took the place as the emblematic scientific application, when Dr. Francisco Corster explained them the critical importance of scientific modeling to understand the behavior of the universe and its cosmic bodies.

Other laboratories across Latin America should follow similar strategies. These visits are not only extremely stimulating to children, but they also help to pave the way for the future bright generation of Latin American young scientist and engineers.

Friday, February 13, 2015

Opinion Piece: Teaching HPC to Undergraduates

Teaching high performance computing concepts to undergraduate students is one of the most important tasks of HPC educators and researchers in Latin America. An early exposure and a thorough instruction would not only help train future researchers and technicians to work on computational challenges of our society, but also enhance labor for areas such as embedded, real-time, and distributed systems. All students should graduate with enough knowledge to be able to develop a performing parallel program to run on one of the many parallel platforms that surround us, be it a mobile phone or a supercomputer.

Students should be instructed in three different fronts: parallel architectures, parallel programming, and software optimization. Several of the concepts that they involve are not difficult to grasp, and students around the second year, with basic programming skills and computer architecture knowledge, could start learning them.
  • Parallel architectures are the basic platforms for HPC. Students from at least the second year and beyond should start learning about multithreading, multicore processors, accelerators, and clusters. This knowledge would help people to evaluate the machine requirements for certain applications, and to guide software development decisions.
  • Parallel programming is required to fully utilize parallel platforms. Parallel programming concepts should be presented in introductory programming classes to avoid restraining students to a sequential mentality, while advanced parallel constructs, languages, and frameworks could be left to the second half of a degree. Courses should not restrict themselves to OS ideas of concurrent programming (threads and processes, synchronization and mutual exclusion) but embrace modern APIs and high-level programming models. 
  • Software optimization comes to improve the integration of parallel programs and architectures. Advanced algorithms and code optimization classes can be left to a degree's last years, but should not be left out. This would ensure that graduates are qualified to make full use of the resources they are given and can lead the development of new software solutions.
One of the main issues for teaching and learning HPC is the time needed to discuss all of these themes, as they cannot be confined to a single course. In this sense, subjects would have to be spread around different courses, with some coordination between instructors required. Nevertheless, such reform should not be stopped just because it is laborious.

Another common issue in Latin American universities is the absence of high performance platforms to run undergraduate students' experiments. This problem could be circumvented by putting together clusters with old or cheap single-board computers with students. Another solution would be to run experiments on commercial clouds.

Finally, exposure to HPC should not be limited to the classroom. Summer courses and tutorials, nearby conferences and small events, parallel programming competitions... all play a role in bringing people in and growing HPC in Latin America.

Wednesday, February 4, 2015

The Role of University Centers in Promoting HPC in Latin America

The development of a competitive high performance computing platform in a country requires the concerted effort of different agents: government, academia, society, and industry. Ideally, a coordinated strategy of all the aforementioned parties would put HPC on the fast track. If  governmental agencies design policies to effectively support the investment on HPC equipment and human capital, academic institutions and companies will efficiently organize teams to chase the funding opportunities. Society must ensure that their taxes are well spent on initiatives that improve their quality of life and open new business directions.

There is, however, an entity that has historically played a key role in developing HPC projects with high impact for society. University centers, attached either to academic, administrative, or technical departments, are units strategically located to spark fundamental initiatives in HPC. Here are some of the reasons why:
  • Proximity to scientist and engineers, which makes university centers aware of the most relevant  and challenging problems in science and engineering that require huge amounts of computation, storage, and analysis to solve. Therefore, university centers are most likely to understand the need for HPC.
  • Funding availability, either because the center has an annual budget that includes equipment, training, and even discretionary funds, or because it is close to upper management where the case can be made to provide HPC platforms for the university. Thus, university centers may be able to cover the cost of HPC.
  • The right size and dynamics, because university centers are usually relatively small units that can be reconfigured in a short amount of time to accommodate the requirements of new platforms for advanced computing. In a world where technologies may change frequently and abruptly, university centers are able to cope with the dynamics of HPC.
In summary, university centers have all the connections necessary to promote HPC at the institutional level. For instance, the centers may have contacts with equipment and service providers that may be able to install advanced computing infrastructure. Also, the centers may understand what problems in society have a higher impact and prioritize those problems in their agenda.

If a university center decides to take on the HPC challenge, it must come up with a plan to wisely invest the resources in addressing the problems with higher impact. There are some fundamental tasks in the plan to develop HPC. Here is a list of them:
  • Equipment. There is no HPC without the right advanced computing infrastructure. Providing the scientific and engineering community with the right hardware is fundamental in achieving a highly efficient HPC platform. In achieving that, the center directors must clearly understand the technical requirements of their potential users: computation, network, storage, applications, frameworks, and more. Surveying those requirements is important since different communities may lie on different ends of the big-compute big-data spectrum.
  • Training. Reaching high efficiency on the HPC platform needs the users to make use of the right programming tool in the right way. That is why the university center should also offer a rich portfolio of training opportunities. Either by developing local experts, or by bringing someone from abroad, proper training sessions may inspire new ways to solve problems and help people overcome the learning curve.
  • Networking. One of the, often overlooked, roles of the centers is to serve as a meeting point for computational scientists and engineers. By organizing workshops, conferences, and competitions, the centers may achieve the important goal of putting people together and start collaborations on fascinating problems.
  • Alliances. As the center becomes more savvy on HPC matters, it will find itself in a good position to contact equipment providers, scientists and engineers,  application developers, policy makers, students, and more. Strengthening those alliances will certainly increase the potential of their goals. 
Not surprisingly, Latin America offers several examples of university centers that have taken on the task of leading the promotion of HPC in their institutions. One example is the Center for Mathematical Modeling (CMM) at the University of Chile. Created in 2000, the CMM has pushed the idea of using advanced computing infrastructure to simulate challenging mathematical models. That quest has made the CMM install some of the most powerful supercomputers in Chile in the recent years. The CMM is now the leader in the development of the National Laboratory for High Performance Computing in Chile. Another example is the Center for High Performance Computing (CCAD) of the University of Córdoba, Argentina. The CCAD has been a constant advocate of using HPC resources to solve important problems in science and engineering. In fact, the CCAD hosts Mendieta, the most powerful Argentinian supercomputer.