Homepage of Michele Martone
Hi. I work as a High Performance Computing expert at the High Performance Systems Division of the LRZ (Leibniz Supercomputing Centre) in Garching near Munich, Germany.I happen to work on performance-oriented large-scale code restructuring techniques, OpenMP / MPI parallelization of scientific codes, sparse matrix computations. Sometimes I give trainings or talks on various related topics (e.g. deRSE25 conference ).
I am author of a few Free / Libre / Open Source Software (FLOSS) packages, developed some for work, some for fun.
I have a GitHub account.
On this page you find some information related to my activities in the above fields.
If you are new to these topics then consult the Frequently Asked Questions section.
For variety, there is an option of changing the color scheme from [bright on dark] to [dark on bright, mild colors], or [dark on bright].
Talks and Publications
- "Large-Scale Code Restructuring and Tooling with Coccinelle" intro material lecture notes at the 45th VI-HPS workshop at LRZ, Garching, Germany 2024.06.10
- "FIM: ein Bildbetrachter für Linux-Enthusiasten und Neulingen", talk and at the Chemnitzer Linux-Tage, 2024.03.16-17., Technische Universität, Chemnitz, Germany
- "Intro in Large-scale C/C++ code restructuring with Coccinelle" , talk and tutorial (with Julia Lawall of Inria) at the deRSE24 conference for Research Software Engineering in Germany, 2024.03.05-07., Julius-Maximilians-Universität, Würzburg
- "Towards Scriptable C++ Refactorings with Coccinelle" poster (joint work with Julia Lawall of Inria) at the first C++ Online UK Conference 2024.02.28.-2024.03.02. and refined online version for ACCU'24 2024.04.17.-2024.04.20 (here) .
- "HPC-oriented Large-scale Code Restructurings with Coccinelle" , talk (and recording) (joint work with Julia Lawall of Inria) at the High Performance Computing (HPC) and Big Data devroom, at the Free and Open Source Developers’ European Meeting (FOSDEM) 2024, 2024.02.03, Bruxelles, Belgium
-
"The FIM (Fbi IMproved) Universal Image Viewer, in a Nutshell"
(
talk;
recording)
talk at the Graphics devroom, at the Free and Open Source Developers’ European Meeting (FOSDEM) 2024, 2024.02.04, Bruxelles, Belgium -
"The FIM (Fbi IMproved) Universal Image Viewer"
lightning talk (recording here) at the Chaos Communication Congress, 2023.12.29, Hamburg, Germany -
"LIBRSB: Multicore Sparse Matrix Performance across Languages and Architectures"
(poster doi)
at Platform for Advanced Scientific Computing (PASC'23) Conference, 2023.06.26-28, Davos, Switzerland -
"FIM: ein Bildbetrachter für Linux-Enthusiasten, den Neulingen erklärt"
(slides here (in German))
talk at the Augsburger Linux-Infotag 2023, 2023.04.29, Augsburg, Germany -
"LIBRSB: Journey from PhD by-product to universally usable Sparse BLAS"
(slides doi)
talk at deRSE23 - Conference for Research Software Engineering in Germany, 2023.02.20, Paderborn, Germany -
"LIBRSB: Universal Sparse BLAS Library"
(recorded session + slides here)
talk at the High Performance Computing (HPC) and Big Data devroom , at the Free and Open Source Developers’ European Meeting (FOSDEM) 2023, 2023.02.05, Bruxelles, Belgium -
"Using the FIM (Fbi IMproved) Universal Image Viewer"
(recorded session + slides here)
talk at the Open Media devroom, at the Free and Open Source Developers’ European Meeting (FOSDEM) 2023, 2023.02.04, Bruxelles, Belgium -
"Inside the FIM (Fbi IMproved) Scriptable Image Viewer"
(recorded session + slides here)
prerecorded talk at the Declarative and Minimalistic Computing devroom, at the Free and Open Source Developers’ European Meeting (FOSDEM) 2023, 2023.02.04, Bruxelles, Belgium -
"Performance Improvement of LIBRSB-1.3 Sparse BLAS on EuroHPC-class Systems" (
poster +
slide)
poster at EuroHPC Summit Week (EHPCSW) 2022, Cité des Sciences et de l'Industrie, La Villette, Paris, France, 2022.03.22-24 -
"Portable performance on multi-threaded Sparse BLAS operations with PyRSB"
open access proceedings and PDF and video on YouTube ,
talk at SciPy21, virtual, 2021.07.12-16 -
"Refactoring for Performance with Semantic Patching: Case Study with Recipes" (with Julia Lawall of Inria),
paper preprint on HAL,
paper doi,
slides
,
talk + paper at the C3PO’21 Workshop - Second workshop on Compiler-assisted Correctness Checking and Performance Optimization for HPC (part of ISC'21), virtual (originally planned in Frankfurt, Germany), 2021.07.02. -
"An Universal Shared-Memory Parallel Sparse BLAS for C++/Fortran/Octave/Python and a Use Case in LQCD",
poster,
poster as a Project Poster at ISC'21 (ISC High Performance), virtual (originally planned in Frankfurt, Germany), 2021.06.30 -
"Portable and Efficient Sparse Matrices Computations: from Interactive Notebook to HPC",
poster,
poster at the EuroHPC Summit Week 2021 (PRACEdays21), virtual (originally planned for Porto, Portugal), 2021.03.22-26 -
"Introduction to Semantic Patching of C programs with Coccinelle"
training at LRZ, Garching, Germany 2020.03.24 --- event canceled due to COVID-19 pandemics -
"Through the Steps of Programmable Refactoring of a Large Scientific Code"
slides
invited talk at Verona University, Verona, Italy 2019.11.25 -
"Introduction to Semantic Patching of C programs with Coccinelle" tutorial,
lecture notes
and
exercises
training at LRZ, Garching, Germany 2019.10.08 -
"Restructuring Scientific Software using Semantic Patching with Coccinelle",
slides
workshop talk at de-RSE 2019, "Research Software Engineers Association Germany Conference", Potsdam, Germany, 2019.06.04 -
"Introduction to Version Control with SVN and GIT",
slides,
exercises
training at LRZ, Garching, Germany, 2019.03.01 -
"Automating Data Layout Conversion in a Large Cosmological Simulation Code",
poster
poster at COSAS'18, "International Symposium on Computational Science at Scale", Erlangen, Germany, 2018.09.07 -
"Interfacing Epetra to the RSB sparse matrix format for shared-memory performance",
slides
talk at the 5th "European Trilinos User Group Meeting", Garching, 2016.04.19 -
"Auto-tuning shared memory parallel Sparse BLAS operations in librsb-1.2",
poster
poster at the workshop EXASCALE15, "Sparse Solvers for Exascale: From Building Blocks to Applications", Greifswald, Germany , 2015.03.23-25 - Reports from my past work in the EFDA HLST ("European Fusion Development Agreement", High Level Support Team) at the Max Planck Institute for Plasma Physics (IPP) in Garching, Germany are to be found on here, also by year: 2011, 2012, 2013, 2014, 2015, 2016, (redacted and integrated with other reports by R.Hatzky)
-
"Efficient Multithreaded Untransposed, Transposed or Symmetric Sparse Matrix-Vector Multiplication with the Recursive Sparse Blocks Format",
article preprint
(also on PuRe)
journal article appeared in Parallel Computing 40(7): 251-270 (2014) -
"Cache and Energy Efficiency of Sparse Matrix-Vector Multiplication for Different BLAS Numerical Types with the RSB Format"
article doi
conference proceedings article, 2013 -
"An Improved Sparse Matrix-Vector Multiply Based on Recursive Sparse Blocks Layout"
article doi
article pdf
conference proceedings article, 2012 -
"Assembling Recursively Stored Sparse Matrices"
article PDF,
article doi
conference proceedings article, 2010 -
"Use of Hybrid Recursive CSR/COO Data Structures in Sparse Matrices-Vector Multiplication"
article PDF,
article doi
conference proceedings article, 2010 -
"On the Usage of 16 Bit Indices in Recursively Stored Sparse Matrices"
article doi
conference proceedings article, 2010 -
"On BLAS Operations with Recursively Stored Sparse Matrices"
article doi
conference proceedings article, 2010 -
"Utilizing Recursive Storage in Sparse Matrix-Vector Multiplication -- Preliminary Considerations"
(DBLP),
article pdf
conference proceedings article, 2010 -
"A Quad-Tree Based Sparse BLAS Implementation for Shared Memory Parallel Computers"
pdf
my PhD thesis, defended in Rome, Italy in May, 2011 - Check the Computer Science Bibliography (DBLP), too
Free / Libre / Open Source Software
- The librsb library for fast shared memory sparse matrix computations in C/C++/Fortran
- The SparseRSB package for interactive sparse matrix computations under GNU/Octave
- The PyRSB package to call librsb via the Python scripting language
- The FIM: Fbi IMproved ASCII / X11 / SDL / Framebuffer Linux image viewer (can render sparse matrices, too)
- The MIMOCH: MIchele's shell MOdulefiles CHecker script to detect mistakes in shell modulefiles
- I am a contributor to the "Coccinelle semantic patching engine" (also with a GitHub mirror)
Contact
-
Email contact:
michele dot martone at lrz dot de
for work stuff,michelemartone at users dot sorceforge dot net
for free software stuff. -
Please consider using email encryption with
PGP
when sending email to me.
Here and here are reasons for using PGP encryption in email or here or here are tutorials.
And here in the box below an example of how easy using PGP via GPG in the BASH shell:# All the following can be pasted in a terminal running the BASH shell. # Lines beginning with # (like this) are comments. # The others are commands. # # import the recipient public key: gpg --keyserver keyserver.ubuntu.com --search 0xe0e669c8ef1258b8 # Output may vary; the following key is the one you want to import when prompted by gpg: # ... # 1024 bit DSA key 1DBB555AEA359B8AAF0C6B88E0E669C8EF1258B8, created: 2005-06-26 #Keys 1-1 of 1 for "0xe0e669c8ef1258b8". Enter number(s), N)ext, or Q)uit > 1 #gpg: requesting key EF1258B8 from hkp server keys.gnupg.net # create a sample file: date > file.txt # encipher it for the recipient of the public key: gpg -r 0xe0e669c8ef1258b8 --encrypt file.txt # the ciphered file named file.txt.gpg is ready to be sent via email, diskette, mule or pigeon. # after having encrypted a file for me you may want to sign it # (signing proves that you produced that file) gpg -sbav file.txt.gpg # now you may want to send the file.txt.gpg.asc signature file as well # verify file.txt.gpg and signature file.txt.gpg.asc you received from me: gpg --verify file.txt.gpg.asc # These keys are also to be obtained online: # http://keys.gnupg.net/pks/lookup?op=vindex&fingerprint=on&search=0xE0E669C8EF1258B8
Frequently Asked Questions (FAQ)
-
Q: Why is this homepage so ugly?
A: It was never thought to be beautiful. However, it was thought to be informative. If it's not the case, then feel free to send me your suggestion for improvements. If you have viable suggestions in making it more beautiful, please send me those, too. -
Q: What is free software?
A: Rougly... Software that gives no constraints on: making copies of it, modifying it, distributing copies, distributing modified copies. The 2014 video by Richard Stallman "Introduction to free software and the liberation of cyberspace" explains this and much more in less than 14 minutes. -
Q: Why do you write free software at work?
A: Lately I've been working at the service of science. With public (taxpayer's) money. You'll agree that having public code out of public money is a good return in terms of transparency. That, to say the least. Please consult the Free Software Foundation web pages for many more and well written motivations. -
Q: Why do you write free software in your free time?
A: Sharing is caring, and there's no fun playing alone.
No, seriously, check out the Free Software Foundation web page for that, because it's a combination of reasons. -
Q: What do you mean by
sparse matrices?
A: By Sparse Matrices I mean matrices (that is, the mathematical concept of tables of numbers, usually found in numerical linear algebra), containing relatively many more zero values than non-zero values. In computers, it is often better to represent such matrices in a sparse form (that is, a list form, e.g.[[a11,a22], [1,2], [1,2]]
for a 2 by 2 matrix having(a11,a22)
on the diagonal and the rest zero values). A dense (or, full) representation (tabular, with all the zero values explicitly represented, e.g.[a11,0; 0,a22;]
) might not be good for such matrices: it might be impossible (matrix may not fit in a computer's memory), or it can slow down down the computation excessively. -
Q: What are
High Performance Computing,
OpenMP,
and
MPI?
A: You can think of High Performance Computing (HPC) as the art and technology around computers that are the fastest at a given time (usually so called supercomputers). OpenMP (Open Multi Processing) and MPI (Message Passing Interface) are programming standards commonly used in HPC.
Misc
-
In memoriam Silvio Gori:
Solei ka chofe _ _ / __ __ / \ / / \ \ o< __ \ | / __ \ 0___ / _ \\w// \ ^ \ / / \w/^ \ / / OV`0 \ / V V | V@ |\ V o/~ | \ W _U__U_ B | \ __W_____T_____L o |--o\ -- / \ \----------/\ ~~~~~~~~~~~~~~^~~~^~~~~~~^^^^^~~^~~~
-
An impressum:
________________________________________ impressum disclaimer ________________________________________ \ \ ,__, | | (oo)\| |___ (__)\| | )\_ | |_w | \ | | || *
- Banners:
$LastChangedDate: 2024-10-29 16:03:48 +0100 (Tue, 29 Oct 2024) $