Greeting!

My name is Ivan. I'm a computer science researcher and developer. My research interests span an area of compiler construction and optimization, code generation and polyhedral compilation, operating systems construction and parallel programming tools, processor architectures and their microarchitecture specificies.

Education

2013 – 2016 Post-graduate student in Computer Science, Siberian State University of Telecommunications and Information Sciences, Novosibirsk, Russia
2011 – 2013 M.S. in Computer Science, Siberian State University of Telecommunications and Information Sciences, Novosibirsk, Russia
2007 – 2011 B.S. in Computer Science, Siberian State University of Telecommunications and Information Sciences, Novosibirsk, Russia
In 2018 I’ve taken my Candidate of Science degree (PhD) at computer science! My PhD thesis is the result of the research I have done at the Computer Systems Departament under the guidance of Prof. Mikhail Kurnosov. This research is focused on the three parallelism levels in computer systems: process level parallelism over distributed system nodes, multithreading on a multiprocessor node and instruction level parallelism + data level parallelism (SIMD) on a superscalar processor core.

On the level of process parallelism I have studied the compiler for IBM X10 language that uses the Partitioned Global Address Space (PGAS) model over the distributed memory of system nodes.

While the multithreading research I have given my attention to the problem of threads synchronization. This part is devoted to the internals of the Software Transactional Memory in GCC compiler (libitm).

The third part of my thesis describes the results of the study of automatic vectorization by compilers (LLVM/Clang, GCC). In this part I have also done some experiments with X86 hardware performance counters and the microarchitectural optimization (optimization of issue ports using).

Teaching

During post-graduate studying I have done lecturing by the courses:

  • Theory of Distributed Computer Systems Functioning Organization
  • Operating systems