OpenMP User Conference 2019 in Edinburgh

The OpenMP user conference 2019 was held in the University of  Edinburgh by EPCC that hosted 10 speakers in person and one remotely over two days for around 30 attendees.

Day 1- Tuesday 4th June

  1. Hands-on Tutorial

I joined the Programming Your GPU with OpenMP: A Hands-On Introduction presented by the Professor of High Performance Computing at the University of Bristol, Simon McIntosh-Smith. He started with an overview of OpenMP and the difference of the terms used in the GPU programming model, the host, the device, and the clauses used in the target device. After that, we started the active learning by interacting with the ARM supercomputer called IsambardInitially, we run a basic serial program to add vectors, where the clause #pragma omp target was set in the processing loop.Usually, the serial version took more time than the parallel job. We need to check in deep in case we have a different result.

It was also explained how to read nvprof, a profiler CUDA toolkit. The command used was nvprof – -print-gpu-trace ./vadd. The first two lines show the cost of offloading in percentage. The calls from the host to the device are mostly greater than the calls from the device to the host after doing the reduction calculations in the device.

Later, the levels of parallelism were explained where the team of threads to be distributed follows the flow: target → device → compute unit → processing element. The term team of threads to be distributed is defined to be used inside the device. The jacobi_solver exercise was so useful to understand how the team of threads works. In this example, a pointer to a fixed array of floats that needs to be explicitly defined in the code as follows:Screen Shot 2019-06-04 at 12.39.03 PM.png

After adding the omp directives, we have that the parallelised version goes twice faster:Screen Shot 2019-06-04 at 12.43.00 PM

To control the memory movement, the target enter data and the target exit data allows data construction to create a data region. These clauses are set in the area of swapping data because the exchange is expensive. The target enter data allocates and copies data to the device, and target exit data directive copies back or destroys the data.Screen Shot 2019-06-04 at 4.25.18 PM

After these configurations, a very good optimization of the data movement is noticeable reducing the execution time 10 times from the serial version of the jacobi_solver.Screen Shot 2019-06-04 at 4.19.34 PM

2. Advanced OpenMP: Performance and 5.0 Features

An interesting talk about the performance of OpenMP was given bythe Senior Principal Engineer of Intel Corporation in the U.K., Jim Cownie. He shared OpenMP programming knowledge and parallel concepts related, as well as the best practices used.

Day 2- Wednesday 5th June

Talks

Nine talks were presented, including a remote presentation of the Director of Supercomputing Center of Excellence at Cray Inc., John M. Levesque who explained how to read the report provided by the CrayPat tool. I highlight these two efforts of the industry in pictures, Dr. Glover from MetOffice trying to accelerate UM and NEMO, and the representative of ARM, Oliver who optimized the performance of OpenMP intranode.

In the academy, the FFLUX optimization by Benjamin Symons from the University of Manchester inspired me to do a comparison with the application I am studying. The OpenMP Parallelisation of Quantum Computing Simulators by Youssef Moawad was also impressive to me, he did an excellent job in his presentation (including the rainbow:).

Panel

Experts in OpenMP offered themselves to be asked about OpenMP. They are working towards OpenMP5 and the compatibilities with upcoming versions as GCC 10 and doing a common collaboration to adapt this interface to different HPC architectures.Food of Event

We met new HPC fellows during lunchtime, a Ph.D. candidate from Egypt Youssef and the Ph.D. student from the University of Manchester. Thanks again to Holly and Andreas H.

The OpenMP community in the U.K.

We did not have a photo group, but we were able to exchange ideas during the break time.

Special Thanks

Thanks to Dr. Bull for the invitation that let us enhance our skills, and to Professor McIntosh-Smith. It was exciting to meet in person the author of a paper I’ve referenced.

Good event in general! It would have been nice to have a couple of workshops and 45 minutes per talk. The projects were very interesting, but some talks lasted 15 minutes.

Advertisements
Posted in Events, τεχνολογια :: Technology | Tagged , , , , , , , , , | Leave a comment

EuroHPC Conference 2019 in Poznań

I was invited to do a talk to the EuroHPC conference in Poznán from May 13 to May 17. The experience was more than satisfactory from the very beginning to the end. Being part of the first-class HPC event was convenient from my perspective to learn from HPC  experts, improve my HPC knowledge and engage myself with this profession by increasing my networking in this very important field. Some thoughts from the event as follows:

HPC Topics

Several topics were presented as it was planned in the Timetable in regards to the HPC technologies and infrastructures that support scientific projects in Europe and around the world, the improvements done and the needs towards the exascale computation. From all the HPC topics, the eduGAIN project conferred by Erik Huizer captured my attention since I saw a world map and my country was not included yet in the “Federation of the Federations project” nor as part of any HPC team. I talked with Dr Huizer about it and he explained to me that the project was still in progress. Another project that took my eyes was the ambitious “HPC & Water-energy- food-environment- economy system analytics” project presented by Julien Harou that requires 750,000 model runs for n random seeds. From what I heard, most of the efforts have been done to support quantum projects in Europe. Finally,  I enjoyed so much the presentation done by Dr Marina Becoulet from France because she was able to model an HPC magnetic fusion using maths foundation, physics and she was consistent while she explained the emerging study that used MPI and OpenMP towards the exascale era.

On May 15th, I decided to attend to the PRACEdays Industrial Track and the PRACEdays Scientific Track 8: Computation Science/Towards exascale. Dr Chris Jhonson from EPCC explained the SHAPE project in Europe to promote the use of HPC resources. Studies that engaged me most were presented by Daniele Rispoli with the Immersion Cooling for HPC, the FEniCS-HPC mesh adaptivity on heterogeneous architecture by Ezhilmathi Krishnasamy, and Multi-scale Quantum Transport Simulations in thousands of cores the using graphene by Jose Garcia. You might see more of the content of these projects hereHPC Networking

It was very interesting to see HPC projects that demand exascale computation in the domain of chemistry, physics, astronomy, aeronautics, and in the education field using Federation technologies. HPC professionals from Greece like Evangelia Markidou and Erik Huizer were so cordial to me during the event and it was a pleasure to meet them. Thanks! My HPC talk

The title of my talk was “HPC: Challenge Accepted” where I shared my experiences and lessons learned as an international student of the Master in HPC at the University of Edinburgh as part of the session “Equality and Diversity in HPC“. I divided my talk into three parts: Thinking in Parallel, Studentship differences Peru – UK, and Culture Shock. HPC Teams

I met researchers from the Barcelona Supercomputing Center that are originally from different countries than Spain such as Alejandro Ortiz, a PhD student from Mexico who gave me some pieces of advice as LATAM professional in Europe, José García from Venezuela, a postdoc who is an interdisciplinary professional in physics with a computer science background, and Lawrence Adu from Ghana, another outstanding HPC professional. Moreover, I also had the chance to spend more time with scientists from Edinburgh Parallel Computing Centre of the University of Edinburgh as Dr. Chris Johson.

HPC diversity

It was a nurturing experience to exchange project ideas and HPC endeavours with different researchers around the world. I met Phuong from Vietnam who studies in Stockholm, Iker, a biologist PhD student from Valladolid who is living in Barcelona, Alejandro, a PhD from Mexico who is doing a PhD in BSC, Ezhilmathi from India who studies Maths and HPC to do CDF simulations, and Lawrence Adu from Ghana who is also working in BSC Spain.

Food and Social Events

I was sponsored by PRACE organizers and they booked a room in the same hotel where the event was held. Excellent food and other state-of-the-art services were provided during my visiting days in Poznań. Diversity of international menus was also nicely offered.  Walking around the city

Getting to know this historical place was a rewarding experience considering the colour of the buildings and the art involved. Lots of statues of mythological creatures surround the Old Market Square of Poznań. Even though it was raining that day, I was able to record good memories there. Special Thanks

To Dr. Debora Testi from CINECA for trusting in my work along these years. Thanks for giving me this amazing opportunity that allowed me to empower my developing HPC career, and to maintain confidence in my HPC training. I also want to express my gratitude to Michał Pilc, a local HPC professional from Poznań who works in the Supercomputing Centre of Poznań for being welcoming and for patience with my doubts in HPC supercomputing centres. Lastly, another HPC professional from the University of Manchester, Lee Margetts who paid attention to my talk and he showed empathy with my situation as a foreign student. Thanks so much again for being so kind, and admirable HPC representatives in Europe. Thank you so much Marjolein Oorsprong, OfCores Events and all the attendees!  🙂

Posted in τεχνολογια :: Technology | Tagged , , , , , , , , , , , , , , , | Leave a comment

Applying OpenMP directives

The Jacobi method is a usual method to solve partial equations in HPC situations such as pollution diffuses throughout a pipe applying the Laplace’s equation for diffusion.  A way to parallelise this solution when it is coded is by using the geometric decomposition with Epiphany.

From now, the serial version of the code has a runtime of 4256258 ns. We are going to use OpenMP directives to check how faster is going to be the runtime of the parallel version.

Since loops provided a chance to parallel the code, we are going to use the directive above the two loops with the option collapse (2) and declare all the variables involved as private or shared. The reduction also was set to use the value of bnorm outside the parallel region.There is another parallel region defined by loops to find the value of rnorm (where the reduction was applied). The default nonce will force the declaration of private and shared variables. Notice that there is no need to put brackets after the parallel for directives.The parallel for was also applied in the jacobi iteration. In this case, it was not necessary to use the firstprivate variable which takes the previous value before entering to the loop, it can change inside the loop, and have the same value after the loop as it was entered before.Due to the race condition of threads that are running in the program, there is a swapping zone that ought to be controlled by an OpenMP directive one by one. It is possible to achieve this with the single directive to block other threads job while one is executed.* The program was run with 16 threads (export OMP_NUM_THREADS=16) and different schedules were set such as schedule(static), schedule(static,4), schedule(dynamic), schedule(dynamic,4) with the respective runtimes. Finding the lowest runtime with the static schedule: 431520 ns.

The parallel version then turned to be 10 times faster than the serial version!

Posted in Education, τεχνολογια :: Technology | Tagged , , , , , , , , , | Leave a comment

Hybrid MPI-OpenMP

A myriad of applications are using the combination of OpenMP constructs and MPI library in order to improve their performance. You might start MPI with this great Website 🙂

Once you have a MPI program, you may include some code in order to make it hybrid:

  • Add the OpenMP header: #include <omp.h>
  • Declare request and provided variables in order to check the level of threads support.
  • Initialize the MPI environment properly, instead of int MPI_Init(&argc, &argv), use MPI_Init_thread(&argc, &argv, MPI_THREAD_FUNNELED, &provided); In this case, I choose the type Funneled but you may choose the style Master-only, Serialized, or Multiple. You can see further information about this here.
  • Define the parallel block with the directives pragma parallel omp including the default, firstprivate, private and/or shared variables as your program was set.

  • In your Makefile, set the FLAG= openmp or qopenmp (depends on your compiler).
  • Load the modules and run it as it is, a MPI program.

The performance was test as it is shown in the table having the best option with 36 processes and 1 thread using the Funneled type. Later, the style MPI_THREAD_SINGLE with 36 process and 1 thread was set, achieving 0.0532 achieving a speed of 0.9797 with this type.

*** Compared the Single style to the Funneled, this latter one was faster. ***

Posted in Education, τεχνολογια :: Technology | Tagged , , , , , , , | Leave a comment

Memories of #LinuxInEdinburgh

1. Prior to the event

1.1. Organization

It was about a month of preparation for running the event. Thanks to the support of classmates of the HPC master that accepted to share their knowledge using Linux with supercomputers and all their experiences in the scientific background acquired for years. 1.2. Helpers

Efforts were done to do some decoration work, as well as taking care of the technical part for the event (e.g. copying the ISO images, VirtualBox for macs / Windows, code snippets).

1.3. Publicity

It was needed to have the official authorization to post the advertising related to the event. Thanks to the Edinburgh University Students Association for the help with this.

2. During the event

2.1. Lunch 

Speakers and volunteers gathered together at noon to share lunch at Mosque Kitchen 😀
2.2. Talks

As had been planned, the event happened on February 27th, in Appleton Tower Lecture Theatre 4. I started by presenting two free software projects such as Fedora OS project and the Linux UI: GNOME. How Linux was born, the beginning of Fedora and GNOME were also explained, what is GUADEC, and the community of these projects. Then, we installed Fedora 29 in a virtual machine, later Jim Walker installed some applications that students usually used such as  Atom,  Spotify, and Latex.Python and C were the programming languages chosen for this Linux event. We had a last minute speaker from Red Hat Czech Republic, with only 19 years old Marcel Plch took his plane, came to do a great talk about Python on Fedora and he brought a lot of gifts 🙂Andreas Hadjigeorgiou from Cyprus was in charge of the C programming talk for around an hour. He started by explaining basic concepts like libraries and loops to more complex structures such as arrays, pointers, structs and containing functions.

2.3. Fedora and GNOME party

We shared for an hour a cake and coke. This was sponsored by Fedora and GNOME!

2.4. Picture frame 

These are some of the photos we took with the frame. I am glad that I was able to introduce both projects, Fedora and GNOME, that were not well known for some people. 

3. After the event

3.1. Thoughts 

Attendees were able to express their feelings about this event. We are going to take them into consideration to improve upcoming events.  It was great to meet new amazing people.My motivation for doing this event was to retribute what Linux did for me in my personal and professional life. Acknowledge the work of Richard Stallman with his ideology of sharing the code for the benefit of everyone, as well as the Linus Torvalds thought: “Linux succeeded thanks to selfishness and trust”. Special thanks to Fedora and GNOME for sponsoring this part.

3.2. Networking

I would like to thank again to Marcel to travel to Edinburgh, the effort and time he did, were productive to inspire others with his talk! Also thanks to the speakers and volunteers like Andreas, Holly, Jim, Alexey, Javiera, Ana, Ruwaida and Jasmin for the effort and time.I would also like to thank to Alberto Fanjul, I hope we can manage better time and efforts for running an event in Edinburgh. To Leyla Marcelo for the design of the poster, and Alexey Riepenhausen for the videos and professional photos! Thanks to the University of Edinburgh, Fedora, and GNOME for supporting this event.

DSC_0551

Posted in Events, FEDORA, GNOME, GNU/Linux/Open Source, τεχνολογια :: Technology | Tagged , , , , , , , , | Leave a comment

My 2018 in Review: Making headlines year

The internationalization of my career was a spotlight in 2008 starting in the U.S.A. with an internship at ORNL in February 2018 and then in U.K. with a Master in HPC (High- Performance Computing) on September 2018. Some online articles can be found chronologically with my active participation and efforts done during the year 2018.

1. Organizing an HPC event

Usually, July is the month in where many interns go to ORNL to have real-world experiences in their fields. Some of them are students from schools, colleges, and universities and I had enough time to interact with most of them and to realize that some of them need more preparation in topics related to HPC such as Linux commands, HPC concepts, Programming, and Deep Learning. This is the web configured to do it:

After the successful event, a note was published in the Sci Ed Programs Summer 2018 Newsletter, Issue 11. I was so happy to help in training students from many countries. 

2. ORNL Photo Story Contest

It was announced a contest of photography about posting photographies related to the internship of students and my picture was published in the Sci Ed Programs Summer 2018 Newsletter. In this magazine, local events in Knoxville and useful ORNL tips were pointed.

Sci Ed Programs Summer 2018 Newsletter, Issue 13 announced the winner of the contest and surprisingly my group got the second place in a picture we took at Smoky Mountain.

https://wakelet.com/wake/0970235f-b3ed-40bf-9fb2-9bd3f2e4960d

3. ORNL 75 years 

The official video was publicly released and 0:33  captured the work I did as a volunteer in the core day of the 75 years of the creation of the Oak Ridge National Laboratory in TN.

https://www.youtube.com/watch?v=OEOHk4wQeTkfg

4. OLCF 

Five OLCF students of 26 were selected to share their experiences and accomplishments during the internship period. I am so happy with the recognition received for my work.

https://www.olcf.ornl.gov/2018/08/07/summer-interns-gain-hpc-skills-professional-development-at-the-olcf/

5. EPCC

I decided to prepare myself further in HPC(High-Performance Computing) and I applied to the school of Informatics in Edinburgh where they have a Master in High Performance Computing. I traveled to Scotland to learn from the world-class staff of EPCC that have more than 20 years of experience in teaching parallel programming worldwide.

https://www.epcc.ed.ac.uk/sites/default/files/EPCC%20News%2084.pdf

6. ORISE

On December it was published my profile after the internship done in ORNL where they highlighted the passion at work I demonstrated while interacted with leadership-class computing systems for open science in the CADES area with an OpenShift project.

https://orise.orau.gov/ornl/experiences/recent-graduates/inca.htmlFinally, my participation was printed to inspire other students to be involved in STEM:

Posted in Education, FEDORA, GNOME, GNU/Linux/Open Source, τεχνολογια :: Technology | Tagged , , , , , , , , , , , , , , | Leave a comment

Jesień Linuksowa 2018

Last weekend I participated in the conference Jesień Linuksowa 2018 in Ustroń which is located in Poland near the Czech and Slovak borders. It was my first time in a country with so much tragic historical experiences.

On the other hand, I was impressed by the community members and the organization of the event. We celebrated another edition of Linux Autumn in the hotel Gwarek and my post-event wrap up will take into consideration seven basic points:

Organizers

This time I was accompanied by my friend Ana Garcia, who is a student at the University of Edinburgh and the members of the organization were supportive and kind all the time with us. We felt a warm environment since we arrive at midnight in the middle of the fog. They helped us with our talks and workshops we offer related to parallelization.

We meet new Linux friends: Dominik, Rafal, Filip, Mateusz Kita, and Matej from Red Hat.Topics

Interesting topics were presented that included Ansible, catching bugs, packaging to Fedora and the innovations of systemd. Here pictured Marcin, Matej, and Zbigniew talks:

My participation

I did a topic related to introduction to parallel computers and a workshop to use parallel directives in OpenMP such as static, dynamic and guided. Thanks to Ana for being my co-speaker this time. My talk was set to the morning around 10 am, and we did the workshop after lunch and we are glad that all the participants completed successfully the experience.

Fedora 29 party

We celebrated with a delicious Fedora 29 cake! What are the new features in Fedora 29 were explained, as well as how to create a FAS account and the system badges. I am glad that Fedora Ambassadors from Peru and Poland, as well as Matej from Red Hat Brno met.Food

The organization arranged comfort food more than three times a day, we had extra cookies and water between main menus, plus the cake of course! We tasted delicious Poland food!

Special Thanks

To Filip Kłębczyk not only for being the general organizer but also for giving me one of the best gifts ever! and to Rafał Lużyński for the invitation and the tour around the city.

The uniqueness 

Retro gaming area was a geeky-genius-fantastic-idea 🙂 There was a unique collection of games from the 80’s and we were able to have an entertainment with that treasure.

Posted in FEDORA, GNOME, τεχνολογια :: Technology | Tagged , , , , , , , , , | Leave a comment