Yasha Pushak

Automated algorithm configuration for solving large-scale computational problems

Why did you decide to pursue a graduate degree?

As an undergraduate student, I was fortunate enough to have the opportunity to spend a year solving fun puzzles while getting paid (also known as research). During this time I presented my work at the Canadian Undergraduate Mathematics Conference (CUMC). At the CUMC, I met and engaged with bright and enthusiastic students from across the country, shared my work with them and learned about theirs. The CUMC inspired me to do two things: first, co-found the Canadian Undergraduate Computer Science Conference (CUCSC), so that I could bring the inspiration that I found at the CUMC to students studying the computational sciences; and second, pursue a graduate degree, so that I could continue learning, solving puzzles and meeting new peers.

Why did you decide to study at UBC?

I applied to a few different schools and spoke with several different professors who had expressed interest in working with me. In the end, I made the decision for a number of reasons. First, I found the research of my potential supervisor at UBC the most interesting and relevant to important, real-world applications. Second, both UBC and Vancouver are beautiful and felt like home (I grew up in the interior of BC, surrounded by lakes and mountains, so I appreciated the nearby mountains and the ocean). Finally, I had family ties in the area that kept me from wanting to go too far from home.

What do you see as your biggest challenge(s) in your future career?

The problem with my area of study (computer science/machine learning/artificial intelligence), is that I am faced with more open doors than I could possibly take the time to consider. In addition, I don't yet know whether or not I will find a better fit (for me) in industry or in academia. Because of the plethora of possible career paths that I face, I am going to have a great deal of difficulty picking a single option to pursue. I do know that I have never felt more motivated or passionate about a project than when I was co-founding the CUCSC. I want to find a career path that allows me to put my time and energy into something that contributes to my local, national or international community in a valuable and meaningful way.

How do you feel your program is preparing you for those challenges?

I hope to use my program and the opportunities it presents me to learn more about myself. Graduate school has already allowed me to sample from a breadth of areas in my field (though the courses that I have taken), and I plan to continue sampling experiences through other opportunities; e.g., internships, conferences and workshops. I hope to use my degree to learn where I want to be with my career (in academia or the industry) and I hope to expand my current network so that when I graduate I will have the connections to find collaborators to work with on a project that I am passionate about. In addition, the technical expertise and communication skills that I am learning should put me in an ideal position to shoot for an ambitious career path with the highest likelihood of contributing to society in a meaningful way.

What aspects of your life or career before now have best prepared you for your UBC graduate program?

All of the "extra" activities I did during my undergraduate degree, e.g., research, working as a teaching assistant, and co-founding the CUCSC. Of course, all of the knowledge that I acquired in my undergraduate courses was essential, but it was through those extra activities that I learned the ropes of research and academic writing (two skills that most undergraduate students don't have the opportunity to learn), how to communicate complex ideas in simple and relatable terms catered to the level of the audience, how to manage an extremely full schedule and balance it with a personal life, and the confidence and drive to succeed when faced with unfamiliar and intimidating challenges.

What advice do you have for new graduate students?

Try as many new things as you can. Get involved and gain new experiences. Figure out what motivates you, and seek opportunities that do. But equally importantly, don't forget about yourself: go outside, enjoy the sun, meet new people, make friends, exercise and sleep.


Learn more about Yasha's research

Industry and academic researchers are constantly pushing computers to solve larger and harder computational problems to enable us to develop new drugs and medical treatments, to train safe, self-driving cars, or to prove that computer systems will operate as expected. For many of these problems, state-of-the-art algorithms require exponentially more time to solve as problem instance size increases. Theoretically, this means that as we move from solving a problem with one million data points to a problem with one million and one, the time required by a computer can as much as double. In my research, I seek to develop new, fully automated methods for optimizing the speed of computer algorithms through parameter configuration. These methods are broadly applicable, and can be applied to nearly any computational problem to improve efficiency and performance. Current methods have substantially improved algorithm running times on modest-sized problem instances. However, they often require prohibitive amounts of time for large, real-world applications (they could require months or even years to configure). I hope to develop new parameter configuration methods that can be quickly performed on small problem instances while providing statistical confidence of good scaling to huge, computationally expensive problem instances. Along the way, I have been developing and improving tools that statistically assess the empirical running time scaling of algorithms, and that can improve the accuracy of running time measurements to enable us to make more accurate predictions about the performance of an algorithm on large problem instance sizes.