Tips for the scientific programmer

Case studies for parallelism, data storage, memory and performance

Michele Simionato

Algorithms Architecture Big Data Case Study Performance

This is a talk for people who need to perform large numeric calculations. They could be scientists, developers working in close contact with scientists, or even people working on finance and other quantitative fields. Such people are routinely confronted with issues like

1 parallelism: how to parallelize calculations efficiently
2 data: how to store and manage large amounts of data efficiently
3 memory: how to avoid running out of memory
4 performance: how to be fast

The goal of the talk is to teach some lessons learned after several years of doing numeric simulations in a context were micro-optimizations are the least important factor, while overall architecture, design choices and good algorithms are of paramount importance.

Type: Talk (45 mins); Python level: Intermediate; Domain level: Intermediate

Michele Simionato

GEM

Starting from October 2012 I work with GEM, a non-profit foundation
specialized on earthquakes and seismic risk assessment. I am the
maintainer of the [Openquake Engine](https://github.com/gem/oq-engine) and since March 2014 I have been working full time on it. Before that I had a long and variegated professional history. I started out as a Theoretical Physicist, working on General Relativity, Supergravity and then going into the Renormalization of Quantum Field Theory which was the subject of my Ph. D. I have been doing several years of postdoc research on Equilibrium and Out of Equilibrium Quantum Field Theory.
In 2003 I quit Physics and moved into software development, working
with Plone and several Web technologies. I am a Python expert, but I
also have experience with several other languages. I wrote several
technical papers and a book-size collection of articles called The
Adventures of a Pythonista in Schemeland. In 2005 I was hired by
StatPro in Milan and spent 7 years working with databases and web
applications in the field of financial risk assessment. I am also one
of the founders of the Italian Python Association.