Tell us a little about yourself: where do you live & what do you do for a living?
Igor: My name is Igor Levicki, I am from Serbia and I am a software engineer working on code optimization.
What was your first experience in the computer industry?
Igor: I wrote my first "Hello world" BASIC program way back on Sinclair ZX81, "upgraded" to Sinclair ZX Spectrum 48K, then learned how to program for Zilog Z80A CPU - no more BASIC for me since then. Then came Commodore Amiga 500 and as I explored Amiga, I eventually learned to program in assembler for Motorola MC68000 series CPUs, as well as some neat tricks to get the most out of the hardware. I learned Pascal in a high-school, learned C on my own, and started writing some simple applications. I was using Watcom C compiler which was the best optimizing compiler before and during the Windows 95 era. I then moved to learning SIMD programming and programming using SSE. As a part of my job assignment I coded the innermost loop for the back projection algorithm used for medical image reconstruction in assembler and fine-tuned it to achieve maximum performance.
Later the same code was adapted slightly to obtain maximum performance on the Pentium 4 CPU. The company I worked for thus got the fastest possible performance in the industry - much faster than even the dedicated hardware solutions.
Then, I started experimenting with Intel compiler, published a white paper for [software.intel.com], and since I figured out that there is room for some improvement I started giving feedback to Intel and well... you know the rest of the story.
What technologies do you work on? Which of these are you most impressed by?
I work on image processing algorithms, low-level code optimization in assembler, GPGPU, etc, and I am looking forward to working with Larrabee - I will most certainly be impressed with that technology when I get my hands on it. I write software for the Windows platform but I am also partially familiar with Linux and Mac OS X. I write my code in C/C++ and assembler, and I use Intel Compiler and Intel Performance Primitives. I am most impressed by the Intel Compiler which in its latest incarnation is capable of some mind boggling code transformations. Its development can be compared to that of a chess program - in the beginning it was capable of defeating some human opponents, but now there are only select few who can rarely get a draw, much less win a match against it when it comes to writing optimal assembler code.
What excites you about being on communities, participating in discussion forums?
Sharing the knowledge, learning new things myself, as well as suggesting ways to improve things.
What excites you enough to wake up every morning?
The thought that I could do something in my area of expertise today that will improve the quality of life for everyone in the future.
What upcoming projects are you working on?
A friend of mine and I will be starting a company in the near future. We will be offering our services and expertise in the following areas:
- Image processing algorithms
- Mathematical simulation and modeling of various processes
- Software optimization
- Problem solving and algorithm research
Feel free to start sending us work offers :-)