Homepage of Michele Martone
Hi. I work as a High Performance Computing expert at the High Performance Systems Division of the LRZ.I happen to work on largescale code restructuring, OpenMP / MPI parallelization of scientific codes, sparse matrix computations. Sometimes I give trainings or talks on various related topics.
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

"LIBRSB: Multicore Sparse Matrix Performance across Languages and Architectures"
(poster doi)
at Platform for Advanced Scientific Computing (PASC'23) Conference, 2023.06.2628, Davos, Switzerland 
"FIM: ein Bildbetrachter für LinuxEnthusiasten, den Neulingen erklärt"
(slides here (in German))
talk at the Augsburger LinuxInfotag 2023, 2023.04.29, Augsburg, Germany 
"LIBRSB: Journey from PhD byproduct 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 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 LIBRSB1.3 Sparse BLAS on EuroHPCclass Systems" (
poster +
slide)
poster at EuroHPC Summit Week (EHPCSW) 2022, Cité des Sciences et de l'Industrie, La Villette, Paris, France, 2022.03.2224 
"Portable performance on multithreaded Sparse BLAS operations with PyRSB"
open access proceedings and PDF and video on YouTube ,
talk at SciPy21, virtual, 2021.07.1216 
"Refactoring for Performance with Semantic Patching: Case Study with Recipes" (with Julia Lawall),
paper preprint on HAL,
paper doi,
slides
,
talk + paper at the C3PO’21 Workshop  Second workshop on Compilerassisted Correctness Checking and Performance Optimization for HPC (part of ISC'21), virtual (originally planned in Frankfurt, Germany), 2021.07.02. 
"An Universal SharedMemory 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.2226 
"Introduction to Semantic Patching of C programs with Coccinelle"
training at LRZ, Garching, Germany 2020.03.24  event canceled due to COVID19 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",
lecture notes
and
exercises
training at LRZ, Garching, Germany 2019.10.08 
"Restructuring Scientific Software using Semantic Patching with Coccinelle",
slides
workshop talk at deRSE 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 sharedmemory performance",
slides
talk at the 5th "European Trilinos User Group Meeting", Garching, 2016.04.19 
"Autotuning shared memory parallel Sparse BLAS operations in librsb1.2",
poster
poster at the workshop EXASCALE15, "Sparse Solvers for Exascale: From Building Blocks to Applications", Greifswald, Germany , 2015.03.2325  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 (redacted by R.Hatzky)

"Efficient Multithreaded Untransposed, Transposed or Symmetric Sparse MatrixVector Multiplication with the Recursive Sparse Blocks Format",
article preprint
(also on PuRe)
journal article appeared in Parallel Computing 40(7): 251270 (2014) 
"Cache and Energy Efficiency of Sparse MatrixVector Multiplication for Different BLAS Numerical Types with the RSB Format"
article doi
conference proceedings article, 2013 
"An Improved Sparse MatrixVector Multiply Based on Recursive Sparse Blocks Layout"
article doi
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 MatricesVector 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 MatrixVector Multiplication  Preliminary Considerations"
(DBLP)
conference proceedings article, 2010 
"A QuadTree 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.
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: 20050626 #Keys 11 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: 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 nonzero 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: 20230706 17:48:37 +0200 (Thu, 06 Jul 2023) $