A reason to go to GUADEC

There is only one reason to attend GUADEC: To learn about GNOME.

You may not know much about the GNOME project or the GNOME community. From my experience in the GNOME community for more than eight years, I can list some reasons to get to know more about it:

1. GNOME is a worldwide project and community

It is usual that people work in a company that has functional areas such as marketing, technology, human resources, accounting, and finance. It is also usual that people work with other local people face-to-face in a fixed schedule on weekdays. GNOME has the same functional areas managed by people from many parts of the world. Each person has a different way of working, different time zone, and different culture – but they all have the same mission: to improve the GNOME software and the GNOME community. You are more than welcomed to contribute to GNOME as a developer, designer, translator or any role you prefer!

Pictured on the left, we see Linux enthusiasts: Nuritzi and Sri from the USA, Sigu and StellaMaris from Kenya, and Julita from Peru 😉  On the right side, all the GNOMEies gathered at GUADEC 2019. You can get GNOME as a final user or get the code in gitlab as a developer.

2. GNOME creates breakthrough technologies

I got to know about Red Hat because I attended GUADEC 2012 and I saw Marc Andre and Zeeshan proudly wearing their red hats. Now in 2019, I am aware of the partnership of GNOME with Purism and was able to see the elegant work of Tobias Bernard at GUADEC and how GNOME can now be used for Linux smartphones. I want to also highlight the work of Peruvian Fabian Orccon, who is doing volunteer technical work for Cheese. This application captures static faces to apply effects, and now with Fabian’s help, it detects faces in movement and applies effects used in technologies like Snapchat and on Facebook. Finally,  at this GUADEC, Lubosz Sarnecki from Collabora moved GNOME to another reality. He used Virtual Reality(VR) to simulate a virtual desktop environment.
These three innovative efforts I just mentioned came from three of GNOME’s former Google Summer of Code (GSoC) students. You can learn more about Google Summer of Code opportunities for GNOME here.

3. GNOME supports and empowers all of its members

GNOME has defined guidelines for members who want to participate in GNOME. Following these guidelines, I have designed some initiatives that I have applied within my local Linux community in Peru: Peru Rumbo GSoC 2018, GNOME PERU Challenge 2017 – I,  and Lets CONTRIBUTE Peru. These were some of the volunteer programs I created in order to promote the use of and contribution to GNOME in my country. GNOME believed in my efforts and supported these ideas by providing the material resources I needed as well as some online support from other GNOME members. I feel that I only succeed once because Cesar Fabian Orccon was the only Peruvian that also became a GNOME Foundation member and not my other students. Even if I made mistakes along the way, GNOME appreciates my effort, time, and money I invested during more than 8 years.

Regarding my own story, I started in GNOME as a technical writer, and over the years I became a representative of GNOME and a speaker at Linux events. For instance, I gave a talk in Portland at the API 2017 conference where I did a workshop using GTK and C. That is only part of my experience with GNOME, and that is also the case for other members such as Carlos Garnacho, Maria, Nuritzi, and Sebastian, who works in Ubuntu. At this year’s GUADEC, I met Sigu and StellaMaris who have promoted Free Software in Africa for around four years!  Pictured on the bottom left: GNOME members are taking selfies as a part of a workshop at this year’s GUADEC.

4. GNOME allows you to leave a legacy

GNOME has more than 20 years of existence and it has also been translated into more than 20 languages thanks to the contribution of volunteers around the world. In order to have a successful Linux project, you must attract a new generation of contributors and pass along the know-how to them. In this matter, GNOME has joined the GSoC program and Outreachy to reach newcomers.
I have met the GNOME students in Thessaloniki and I am glad that Carlos Soriano keeps this effort since he was a previous GSoC student and he is sharing his expertise with newbies.

5. GNOME helps build friendship around the world

First, you meet someone and then it can be hard to make the change from acquaintances to friends. I am so glad to share that I have been invited from GNOME members to be part of their lives and they kindly hosted me in their houses when I traveled abroad. That is the case for Andre Klapper in 2012 when we stayed at his apartment to attend the Documentation Hackfest in Brno. In 2014, I visited UK at Kat’s place, and in 2016 in order to attend to the ISC conference (a non GNOME conference), I stayed at Tobias Mueller’s house and I met his lovely wife.

It is priceless that somebody trusts you enough to give you the key of their house. It was very exciting to see these people again at GUADEC 2019! Petr Kovar’s is just in the collection of photos because I had no other choice 🙂 Felipe Borges taught me GTK on Python once in a Hackfest, and keep many other valuable stories in my mind from Javier, Sam, Rosanna, David and Bin Li that were also pictured for this post. Finally, even though I did not visit Nuritzi’s home, I feel that she is my friend not only because she supports my ideas and initiatives, but because a real friend tells you in your face good and bad things in order to be a better person. Nuritzi did that in this GUADEC, and I will try to behave better for the sake of humanity. I will post Zeeshan’s photo when he will take me on his plane! 😀
Additional thanks To Federico Mena, Marina, Karen, Shaun McCance, Phil Bull, Siska and all the GNOMErs that did not attend the GUADEC 2019 but they are definitely in my mind and heart 💜

6. GNOME is constantly working on user-friendly changes

A project exists based on a user’s need. Nowadays, an IT project must be enough to solve the needs of two generations such as millennials and members of Generation Z. These two generations are closely impacted by the presence of technology, then GNOME has been reinvented during the latest years. The first substantial evolution I witnessed was the implementation of  GNOME 3.x. This effort is constantly improved by developers of GNOME, due to the ubiquity and online-oriented information demand. The GNOME technologies that are created must be adequate for the sake of the project and for all its members and users. There is also a board of directors of GNOME that are supervising all the efforts done by the GNOME members.

Pictured are Philip Chimento who is in charge of GJS, the GNOME Javascript engine, and Robert McQueen who is the CEO Endless, ex CTO and co-founder of Collabora and long-term contributor to FOSS projects like GNOME, Flathub, Flatpak and freedesktop.org, and currently serving as the President of the GNOME Foundation Board of Directors.

You might see the full schedule of the projects presented at GUADEC 2019 here.

7. GNOME rewards your efforts

Meritocracy is a basic principle that GNOME has demonstrated over the years. As GNOME people contribute to the GNOME project and community, they are prized by being sponsored to attend different Linux conferences around the world. In my case, GNOME recognised my effort by featuring me as a people side of GNOME. It definitely raised my confidence. Moreover, I feel strongly connected with GNOME when I read posts of other GNOME international members such as Philip Chimento and Felipe Borges where they showed empathy towards my work.

In this GUADEC 2019, I met again and shared my table with the GNOME Asia members. I had the honour to travel to Asia to meet the strong GNOME Asia community in 2015. Glad to talk to BinLi, he is one of the most active members for several years and works for Open SUSE in China.The “Bingo” prized the effort that some people did in this GUADEC to meet GNOME in deep. I will never forget that I won twice! That is the first time in my life that  it happened!

8. GNOME is an important part of my life

Over the past 8 years of contributing to GNOME, my life has changed from the routine to a life of trips, and continuous learning because the world of technology also constantly changes. GNOME gave me trust in myself and that is, in my eyes, more valuable than anything else. I have moved to the USA and the UK in the last two years. Starting off has been so difficult since living abroad implies acquiring new mindset and ways to behave in a different culture. However, wherever I go, I try to spread the Linux word, especially the GNOME and Fedora word. You can see that in the two interviews that ORNL did to me in the USA: 1, 2; and here is the video that summarizes my volunteer work as the general organizer of  Linux at Edinburgh, an event where a did a talk about GNOME and Fedora.

Thank you so much again GNOME for second 0.3 in GUADEC 2015, the 1:31 on GUADEC 2012, My GUADEC 2014, My GUADEC 2017, and My version of the Desktop Summit 2011, My own video of my talk at GUADEC 2012 and my lighting talk at GUADEC 2015.

9. GNOME made challenge myself

I have recently completed my masters in Computer Science when I won the OPW 2011 for GNOME. I started in the GNOME documentation team, and then I realized that learning Linux will help me get better career opportunities. Unfortunately, I have never been hired by any partner company of GNOME such as Red Hat, Collabora, CodeThink, Canonical or Purism as most of the current GNOME members are.  However, my entrepreneurship allowed me to achieve my Red Hat Certified Professional and then I was able to work in IBM Peru. This opened me other doors such as being a Linux teacher in universities in Lima, Peru. Later, I was involved in High Performance Computing researcher projects.

I dare to say that GNOME made me find myself as a blogger, photographer, teacher, sysadmin, international speaker, developer, IT event organizer, and nowadays I am acquiring skills as a researcher in the HPC field.Taking GNOME people’s backs represented my challenge at this GUADEC because I usually take pictures of people’s fronts. I am also excited to see ARM as part of the GNOME sponsors.

10. The GNOME heart is left wherever the GUADEC is held

Throughout these eight years, I met GNOME communities around the world. I got fascinated when I saw in person different volunteer workgroups making possible GUADECs. This GUADEC 2019 in Greece has definitely a lovely group behind the scenes.Thank you so much Efstathios Iosifidis, Mariet Vaina, Eirini Basdani and all the team! 👍

Special thanks for the proofreading service to Nuritzi Sanchez and KittyKat 

Posted in FEDORA, GNOME, GNU/Linux/Open Source, τεχνολογια :: Technology | Tagged , , , , , , , , , | 1 Comment

Building a foundation of HPC knowledge

It is said that life is a series of decisions. In my case, I was living life as light as a feather, but passionate in anything at the same time. I like challenges and I did not want to be just a woman in computers, I wanted to be a woman that works with supercomputers! Three years ago, I found by chance the HPC (High Performance Computing) program offered by the University of Edinburgh while I was considering higher studies in HPC, since this field has many areas to flourish. Despite my previous HPC experience with my internship at ORNL in the USA, and the ISC 2016 event in Germany, I decided to move to Scotland to learn more about HPC.

The EPCC (which offers this intense HPC year program) has been the international centre for excellence in high-performance computing for over 25 years. I’ll share some memories:

The beginning

I was impressed by the number of ladies I met as classmates. Usually in the “IT world” there are very few women compared to men. The following picture shows that our HPC master group had 14 men and 10 women (1 from the UK, 1 Germany, 1 Peruvian, 7 China).

During classes and workshops

The curriculum for courses are previously arranged in advance by the teachers and teaching assistants and published one week before on the intranet. They consist of the theorical materials and practical exercises to support the theory. Some reinforcing workshops were also used in order to address questions and concerns.

Additionally, a personal tutor is designated in order to help us with any university subject.

Work as part of a group

Some courseworks were set in order to develop our skills of working as a group. Soft skills and other non-technical skills are also part of our educational evaluation. Dealing with students from multicultural societies was a little challenge for me at the beginning. With time, I discovered and learned from different studentship habits and actions.

Communication is the key in any healthy relationship in any circumstances.

Visiting Edinburgh in group

We did not share many moments as a unified group because of the deadlines of the intensive Master program. The first time we were together, it was arranged by the school to have an all-you-can-eat buffet with dishes from all over the world. A second big-group meeting was gathered by the initiative of the Chinese group. We went to the Edinburgh zoo, where we had lots of expectation for the penguin parade! The last one was a two-hour walk to the Arthur’s seat during the first week of our second semester. It was recorded  🙂

I have to say that the Chinese group demonstrated to be a strong community.

My failures and achievements

One of the first coursework that represents a challenge to me was our first MPI assignment, which consisted of divide a figure into pieces, then enhance it, to finally reconstruct it using many MPI processes. At the end, we were asked by the school to deliver a code and a report. Figures of different sizes were used for the experiment and thanks to the help of Holly and Jasmin I was able to complete it! Another challenge I remember I had, was the Student Cluster Competition SCC. I left the team since it represented an extra effort that I was not able to manage at that time.

The experience was useful at the end because my dissertation included the CP2K HPC app.

Inspirational people and friends

Living abroad implies facing hard times, special thanks to Holly, Ruwaida, Racky, Huahua, Andreas and Cris for their understanding and help any time I asked. They stood by my side not only as good classmates, they were very friendly even in my complex mood :p

Meeting pluricultural people and moreover, living together in Bayes was “the experience”.

Unforgettable moments

The picture in the left was taken the first Sunday we meet in Bayes to complete the PS assignment. It was funny to see other groups watching us through the windows as a weird group. The picture in the right was taken in my apartment by my dear Holly, who was trained by me the whole year to have amazing selfies. I am glad she made it 😀

Uncountable stories that at the end someone remembers how others made you feel.

Leveling up people

Special thanks to those people that trusted in myself when I struggled to achieve something related to the master. Thanks to Vanya Yaneva for her support during the practical sessions, thanks to my supervisor during dissertation time and thanks to Abby!

The end

After presenting our dissertation summaries, the school prepared a gathering to close out the university year. I could not believe that this stage in my life finally ended.

All this students were so hard worked and smart in researching. I learned a lot from them.

Thanks EPCC

Scientists of EPCC were so helpful with my questions in the kitchen! Thanks to all EPCC!

Posted in FEDORA, GNOME, τεχνολογια :: Technology | Tagged , , , , , , , , , , , , , | 1 Comment

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


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:).


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.

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.


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.


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.


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.



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.



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:


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

Profile of the code on Cirrus

To see the profile on a code, we are going to work with gprof on Cirrus. Let’s use the percolate code: Include the flag -pg for Intel compiler in the Makefile to compile.
After compiling, we will see that gmon.out was created,  as well as its executable:To view the performance data, replace the gmon.out with the executable:

gprof ./percolate

Edit again the makefile with the flags -profile-fuctionts and -O3 as follows:

After recompiling and executing with the Intel profiling, two new files are going to be created *.xml and *.dump. To see the graphic output, run the executable *.sh: A graph will be displayed with the profile of the percolate code:To check the performance of loops, use can use the flag -profile-loops in the Makefile:


Each one used separately to produce this outputs:

Screen Shot 2018-11-02 at 11.43.22 AMScreen Shot 2018-11-02 at 11.51.00 AMScreen Shot 2018-11-02 at 11.52.14 AM

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

Unit testing with xUnit practical

This is a lab of the UoE to utilizing xUnit framework to develop unit tests. The experience was inspired by the DNA sequences job. The class of the sequence as follows:

import sys
class Sequence:
    """ DNA sequence consisting of A, C, G, T sequences."""
    WEIGHTS = {'A': 131.2, 'C': 289.2, 'G': 329.2, 'T': 304.2} 
"""dict of str or unicode to float:nucleotide molecular weights"""

    def __init__(self, sequence=""):
     """Initialise Sequence with a string. The string must only
     contain letters in the set a,A,c,C,g,G,t,T.
     :param sequence: sequence
     :type sequence: str or unicode
    :raises AssertionError: if sequence contains an invalid letter
        assert Sequence.is_valid(sequence), \
            "Sequence should only contain A, C, G and T"
        self._nucleotides = sequence.upper()

Python code is in the Python directory.
src/sequence.py contains a Python implementation of Sequence.

To run the tests, and also generate an xUnit XML test report:

Checking the output of the XML test report:

These were the test cases in test_sequence.py:

import unittest
from sequence import Sequence
class SequenceTestCase(unittest.TestCase):
    def test_get_nucleotides(self):
        sequence_str = "GATTACCA"
        sequence = Sequence(sequence_str)
        self.assertEquals(sequence_str, sequence.nucleotides,
                  msg="Nucleotides returned were not those given")

    def test_get_weight(self):
        sequence = Sequence("G")
                            msg="Weight returned was unexpected")

    def test_calculate_weight(self):
        sequence = Sequence("G")
                             msg="Weight returned was unexpected")                            


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

FFTW and MelGibson

Printing an image before applying FFTW

Using the FFTW library, we can improve the visualization of the edges of an image. In this case we are going to use Fortran to compile the program fftw1.c using a make file:Now lets run it to have the image indicated in the source codeWorking with Plans to make it better after applying FFTW

Lets create the plan forward and backward

plan_forward = fftw_create_plan(NX,FFTW_FORWARD,FFTW_MEASURE);
plan_backward = fftw_create_plan(NX,FFTW_BACKWARD,FFTW_MEASURE);

Now we are going to perform the plan forward FFT in one dimension

      store[i][j].re = data[i][j];
      store[i][j].im = 0.0;
  for (i=0;i<NY;i++)
    for (j=0;j<NX;j++)
      in[j].re = store[i][j].re;
      in[j].im = store[i][j].im;
    fftw_one(plan_forward, in, out);
    for (j=0;j<NX;j++)

Let’s perform it in the 2nd dimension

for (j=0;j<NY;j++)
    for (i=0;i<NX;i++)
      in[i].re = store[i][j].re;
      in[i].im = store[i][j].im;
    fftw_one(plan_forward, in, out);
    for (i=0;i<NX;i++)

Writing the real and imaginary parts of the image in Fourier space to separate files.

 for (i=0;i<NX;i++)
      for (j=0;j<NX;j++)
      data[i][j] = store[i][j].re;
  pgmwrite("data_real.pgm", data, NX, NY, 1, 2);
  for (i=0;i<NX;i++)
      for (j=0;j<NX;j++)
      data[i][j] = store[i][j].im;
  pgmwrite("data_imag.pgm", data, NX, NY, 1, 2);

Operate on the image in Fourier space; either:

   *  1) cut off high frequencies, or

   *  2) cut off low frequencies


  Performing backward FFT in the 1st dimension.

  for (i=0;i<NY;i++)
    for (j=0;j<NX;j++)
      in[j].re = store[i][j].re;
      in[j].im = store[i][j].im;
    fftw_one(plan_backward, in, out);
    for (j=0;j<NX;j++)

 Performing backward FFT in the 2nd dimension.

  for (j=0;j<NY;j++)
    for (i=0;i<NX;i++)
      in[i].re = store[i][j].re;
      in[i].im = store[i][j].im;
    fftw_one(plan_backward, in, out);
    for (i=0;i<NX;i++)

Storing the final image.

    for (i=0;i<NX;i++)
        for (j=0;j<NX;j++)
  pgmwrite("finalFFT.pgm", data, NX, NY, 0, 255);

 Cleaning up the plans:



Finally compiling and running and the Mel Gibson image will improve with the functions.

gcc -O2 -L $LIB  -l $PATH-o  fftw1 fftw1.o io.o -lsfftw -lm

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

Calculating PI using MPI

Sequential program

This is the program in C that use the math formula with sums.Parallelizing the code 

  • Parallelizing the code manually:Now we are going to run it and check if all the processors resolve the same answer:
  • Parallelising the code using MPI so the sum can be partially calculated for processes

This time we are going to test with 8 processes

  • Finally, we are going to reduce the partial results into a total calculation of pi considering time of execution

In this case we are receiving the messages indistinctly, but if we need to send it in order, we can set the variable “I” in the receive function.

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

Parallelising Mandelbrot

We have a sequential program of Mandelbrot that take a while when executing, and we can made it in parallel using private and shared variable to check the performance on each one

This is the sequential program C code:and this is the version in C parallelised:Comparing performance

Now lets compare the runtimes between these two options. This is the output for the serialThese are the outputs for parallel ones:

* The parallelization in Fortran as follow:and the output to confirm we did a good job parallelizing: Nested loop

In this case we are going to set two threads that can have other for 3 threads. Then, level 1 is going to handle 2 threads, and at level 2 we are going to have 4 threads!
The answer has to be the same with a lower time:

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

Starting with OpenMP

We are going to work in DICE and the conventional hello world in C and Fortran:

Hello World (OpenMP with fortran):

The hello world in Fortran 90 as follow:

By default it will take the number of threads as 16:

But if we want to set the numbers to 4, then we can export the desired value 

Hello World (OpenMP with C):

The hello world program as follow with the number of threads set in the environment:

Printing threads inside and outside the critical region in Fortran

Printing threads inside and outside the critical region in C


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