marcink at fys . uio . no

Professional experience

  1. Implementations of large resolution (hundreds of millions of mesh nodes) parallel numerical models on modern high-performance computing platforms (SMPs, GPUs, clusters/massively parallel supercomputers).

    • Numerical linear algebra, direct and iterative methods for the solution of large systems of linear equations

  1. Numerical solution of PDEs on different hardware platforms, using different methods

    • Large-resolution high-performance two- and three-dimensional Finite Elements solver for MATLAB (

    • ADI/Fractional Steps methods on structured grids using shared memory computers and OpenMP / NUMAcc

    • FEM and unstructured adaptive meshes on high-performance supercomputers with thousands of CPU cores using MPI

    • Stencil computations and Geometric Multigrid for the Poisson's problem on modern GPUs using CUDA

  1. Various technical aspects of modeling

    • meshing/remeshing for unstructured computations

    • sparse matrix algebra

    • node renumbering, geometry (re)distribution

    • periodic boundary conditions

    • visualization of results using Paraview/VTK, MATLAB

  1. Software optimization and performance analysis on modern multi-core hardware.

    • memory bandwidth oriented optimizations for numerical codes

    • bottleneck identification (compute vs. memory bandwidth bounded codes)

  1. Seven years of work in collaboration with modelers from the Earth sciences. The challenges often addressed include

    • Complex geometries, heterogeneous materials, large resolution models

    • Different spatial and temporal scales of processes

    • Poisson's equation, Darcy flow, heat diffusion, transport, elastic wave propagation, incompressible Stokes flow

    • 2D and 3D data visualization and post-processing

  1. Ongoing projects

    MILAMIN 2 ( is an integrated MATLAB environment for efficient 1D, 2D, 3D FEM modeling using unstructured grids. It includes optimized and parallelized MEX files for sparse matrix creation, sparse matrix-vector multiplication, quad/oct-tree generation and fast point in triangle location. The MEX files  can be freely downloaded from Sourceforge.

    MILAMIN supports a large variety of element types and provides a set of useful functions to manipulate the mesh, setup a numerical model, set the boundary conditions, solve the system of equations, and visualize the results. A large number of example models of different complexity are provided. The MILAMIN website provides benchmarks, as well as a detailed technical discussion of various steps of a state-of-the-art FEM solver.

  1. Programing languages (in order of expertise)

    • C (expert, memory bandwidth optimization, parallel programing with MPI, OpenMP, pthreads)

    • MATLAB (expert, 'vectorization' techniques, parallel MEX files for multi-core SMP architectures)

    • shell scripts

    • C++

    • Pearl scripts

    • Scientific Python

  1. Non-academia / company experience

    • distributed client-server systems, CORBA

    • public-key cryptography and SSL, secure data and AES

    • implementation of hardware drivers for Linux

    • shell and Pearl scripting on Linux-based systems

    • system programing on Linux-based workstations and embedded systems

    • software release management system (Pearl)

    • automatic compilation and assembly of custom Linux distribution for embedded systems

Current Post

Researcher, Physics of Geological Processes (PGP), University of Oslo,

Member of the Resource Allocation Committee (RFK) appointed by the Research Council of Norway.

XI 2010, Defended the Degree of PhD

Title: Efficient implementations of numerical models for geological applications on modern computer architectures.

Thesis defended in the Faculty of Mathematics and Natural Sciences, Department of Informatics, University of Oslo

Opponents: Jason Phipps-Morgan, Cornell University; Petter E. Bjørstad, Department of Informatics, University of Bergen; Galen Gisler, Physics of Geological Processes, University of Oslo.

2008-2010, PhD Project, University of Oslo, Norway

Physics of Geological Processes (PGP), in collaboration with SINTEF

Relevant courses: Reservoir Geophysics, Introduction to Mechanical Geomodeling, Research Methods in Computer Science

2005-2007, Assistant Lecturer, University of Oslo, Norway

Physics of Geological Processes (PGP)

2002-2005, Software engineer, Sentivision Polska

Software designer and developer, software release manager, Linux-based embedded systems for VOD (Video on Demand) and distributed Content Management Systems.

1997-2002, Higher Education, Degree of Master of Science

Poland, Wroclaw University of Technology, Department of Software Engineering. Specialization:

  • Supercomputing, concurrent/parallel computing

  • Cryptography

  • Artificial Intelligence

Title of the Master thesis: Automatic parallelization of Java programs for distributed environments

The results were published in 2002 by IEEE Computer Society, "Amelia. Integrated Environment for Distributed Processing".