The coding period ends on 6th August. Julia’s GSoC students were invited to attend JuliaCon 2018. The Julia Project and NUMFocus sponsored our attendance. I was provided with $1600 to cover my expenses and a free JuliaCon ticket.

JuliaCon 2018 was held in University College London from 7th August to 11th August.

Poster Presentation

My role was to create a poster that summarises my GSoC project. My poster can be found in this link. The questions asked during my poster session were usually of the form:

  1. Clarification of the benchmarks.
  2. Modifications made to parallel implementations.
  3. Challenges faced and barriers to obtaining further improvements.
  4. Does my project support Out of Core Computation? (It does not)

Judging from the audience’s interest in Out of Core Computation, producing external memory implementations of graph algorithms might be a good idea for a GSoC 2019 project. It would likely be popular with the community but check in with us through the slack channel at the time of applying.

The answers to the first 3 questions can easily be found in this blog.

Example: Parallel BFS

Clarification of benchmarks

Benchmarks were conducted on Twitter Social Circles Graph, Astro-Physics Collaboration Graph, Facebook Social Circles Graph. The ratio of the run-time of the sequential implementation to the run-time of the parallel implementation (with dynamic load-balancing) on a machine with 4 cores was displayed. In hindsight, the poster could have conveyed the benchmarks a little clearer.

Modifications made to parallel implementations

For BFS, a single “current queue” and “next queue” is maintained. In each level iteration, the vertices in the “current queue” are iterated over and if any of these vertices have a neighbor has not been “seen” in a previous level iteration, it is added to the “next queue”.

For parallel BFS, each thread is provided its own “current queue” and “next queue”. When a thread has iterated over all the vertices in its own “current queue”, it tries to “steal” the vertices in an unfinished thread’s “current queue”.

Challenges faced and barriers to obtaining further improvements

As explained in the poster, shared memory parallelism is relatively new feature in Julia and lacks functionality such as thread calls, relaxed atomics etc.

Talks

The most common activity during JuliaCon were its talks.

A play list of the JuliaCon 2018 talks is available on YouTube. But trust me, listening to the talks in person is a completely different experience from watching it online.

Two talks that I recommend are:

  1. A Conversation with Glibert Strang
  2. The Future of Microprocessors

Interactions

I tried to meet as many attendees as I could during the conference. The most valuable benefit I obtained from attending the conference was that I was able to meet the Julia community in person. Most of the attendees I met work on:

  • Machine Learning
  • Differential Equations
  • Compilers

I was able to obtain career advice and perspective from researchers present at the conference, such as Pontus Stenetorp and Chris Rackauckas.

I had a brief but memorable discussion with Gilbert Strang, a researcher working in Linear Algebra that has posted a huge amount of high quality educational material online. I also got a selfie with him. ^_^

Much of my interactions were with the other GSoC students present at the conference. Other than discussing our projects and careers, we would have an outing to a park, museum at the end of each day.

Acknowlegements

I would like to thank The Julia Project and NUMFocus for sponsoring my attendance to JuliaCon 2018.

Update: I passed all my GSoC evaluations. Thanks for reading.