Skip to main content
Kirana Bergstrom sitting in grass.

Developer of state-of-the-art, high-performance mathematical routines

Background

OSU Math Alumna Kirana began her undergraduate career at Evergreen State College in Olympia, Washington, determined to pursue a career in journalism. However, by the time she registered for classes in her freshman year, the journalism courses were all full. She decided instead to take a year-long calculus, physics, and linguistics course, called Meaning, Math and Motion, instead. She ended up enjoying doing mathematics so much that she subsequently signed up for every mathematics class offered. Sometime during the next four years of studying everything from mathematical poetry to statistical mechanics, she decided to become an actuary. The Master’s program at Oregon State University was attractive as it offers several courses relevant to actuarial science at the M.S. level, and has an active Actuarial Science Club. Soon after arriving at OSU, however, she switched her focus to applied mathematics and scientific computation.

Her team is always striving to stay on top of any cutting-edge techniques for developing state-of-the-art, high-performance mathematical routines...

Career

Currently Kirana is a software development engineer working on the Intel® Math Kernel Library (Intel MKL) team. Specifically, she works on the LAPACK and ScaLAPACK components of Intel MKL, which provide functionality to solve systems of equations, eigenvalue problems, and singular value problems, as well as the related matrix factorizations (LU, Cholesky, QR, and others). The components that she works on are used for dense matrices on both shared and distributed memory systems. She has also worked on the Intel® Autonomous Driving Library (Intel ADL), a mathematical library providing functionally safe algorithms specifically for autonomous driving applications.

Intel MKL is a performance library, so the majority of her time is spent optimizing functions for performance; although for certain projects (such as the autonomous driving project), significant time is spent ensuring that the code is safe and user-friendly. Her team is always striving to stay on top of any cutting-edge techniques for developing state-of-the-art, high-performance mathematical routines, so she often researches and implements the latest algorithms and methods for dense linear algebra computations.

Preparation

Kirana’s time in the Department of Mathematics at Oregon State University prepared her for work at Intel by ensuring that she gained the mathematical knowledge and general problem-solving skills required to succeed on the Intel MKL team. Taking the graduate-level numerical analysis sequence (in particular, numerical linear algebra), as well as other linear algebra courses, provided her the requisite background knowledge to understand and implement stable, accurate, and high-performing numerical algorithms. Intel MKL is used primarily in high performance computing. Her experience doing research in applied mathematics with her advisor has been helpful in understanding the context of how the library is being used.

Successes

Kirana wrote and integrated a series of functions for the Intel ADL, including the standard LU, Cholesky, and QR factorization functions, as well as several new-to-MKL functions: updating QR (for updating the QR decomposition of a matrix after a column has been added) and a pseudo-inverse calculation. Because the Intel ADL was in its infancy when she started working on it, she was able to contribute to the design of and strategy for coding this library. By implementing a version of the algorithm using tall-and-skinny QR factorizations, she was able to sped up the SVD function. She also improved the generalized eigenvalue problem driver by implementing a blocked and parallelized version of the code. Recently, Kirana has helped to implement and integrate a new feature in Intel MKL, compact functions. The Intel MKL compact functions are a limited set of functionality for performing specific functions on large groups of very small matrices, a type of problem that is becoming more and more common in high-performance computing.

In addition, she often participates in community outreach on behalf of the LAPACK/ScaLAPACK team.

Developing the communication and leadership skills necessary to succeed on research projects with others will serve you well in a career...

Advice

Future graduates who are interested in working at Intel, or as a software engineer in general, should spend time practicing their basic computing skills. While certain skills are not strictly necessary to succeed in a graduate program, such as building and linking libraries, navigating in linux, and stepping through code with a debugger, these are invaluable in any software engineering work. She would also advise any students interesting in working at Intel to seek out opportunities to use high performance computing techniques within their research. Finding ways to use distributed memory systems and parallelism will not only improve the quality of your research, it will give you the experience that will prepare you well for a career in research or software engineering. Finally, she would tell students to take any opportunity to work in a diverse, collaborative group. Developing the communication and leadership skills necessary to succeed on research projects with others will serve you well in a career, especially at Intel, where they work closely in interdisciplinary and cross-cultural teams with partners of varied professional and personal backgrounds.

In her own words

“The computational knowledge and expertise that I gained through my experience at OSU has helped me immensely in my career at Intel.”