Curriculum Vitae
RAHMAN LAVAEE
November 10, 2015
Office Address
Department of Computer Science
University of Rochester
Rochester, NY 14627 rlavaee@cs.rochester.edu
homepage: http://cs.rochester.edu/u/rlavaee
RESEARCH INTERESTS
• Locality Analysis and Optimization
• Code Layout Optimization
• Computational Social Choice
EDUCATION
• University of Rochester, Rochester, NY
Ph.D. in Computer Science, September 2011–present
Advisor: Chen Ding
(Completed M.S. Degree in Computer Science on May 2013)
Relevant Coursework : Operating Systems, Parallel and Distributed Systems, Advanced Computer Architecture, Software Analysis and Improvement, Dynamic Languages and Software Development, Analytical and Stochastic Modeling of Computer
Systems
• Sharif University of Technology, Tehran, Iran
B.S. in Computer Engineering, September 2007–June 2011
Thesis: The Application of MapReduce Model in Solving Problems for Dense Graphs
HONORS
• Ranked 187 th in the annual nationwide universities entrance exam (Konkoor) among more than 300,000 participants, 2007.
• Bronze Medal , 24th Iranian National Olympiad in Mathematics, Summer 2006.
• Silver Medal , 15th Iranian National Olympiad in Informatics, Spring 2006.
• Introduced as scientific elite by the National Elite Foundation of Iran , 2006.
1
PUBLICATIONS
1.
The Hardness of Data Packing , R. Lavaee, To Appear In Proceedings of the 43rd ACM
SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2016),
January 2016.
2.
Sliding Alignment Windows for Real-Time Crowd Captioning , M. Kazemi,
R. Lavaee, I. Naim, and D. Gildea, In Proceedings of the Annual Meeting of the Association for Computational Linguistics (ACL 2014), short paper , June 2014.
3.
Schulze and Ranked-Pairs Voting are Fixed-Parameter Tractable to Bribe, Manipulate, and Control , L. A. Hemaspaandra, R. Lavaee, and C. Menton, In Proceedings of the Twelfth International Conference on Autonomous Agents and Multiagent Systems
(AAMAS 2013) , May 2013.
4.
Affinity-Based Hash Tables , B. Grenhardt, R. Lavaee, and C. Ding, In Proceedings of the
Workshop on Memory Systems Performance and Correctness (MSPC 2014) , June 2014.
5.
ABC-Optimizer: Affinity-Based Code Layout Optimization , R. Lavaee and C. Ding,
University of Rochester Department of Computer Science Technical Report 987, January
2014.
6.
Schulze and Ranked-Pairs Voting are Fixed-Parameter Tractable to Bribe, Manipulate, and Control , L. Hemaspaandra, R. Lavaee, and C. Menton, ACM Computing
Research Repository Technical Report arXiv:1210.6963 [cs.GT], October 2012. (Also appears as University of Rochester Department of Computer Science Technical Report 982, October
2012.)
7.
ABC-Optimizer: Affinity-Based Code layout Optimization , R. Lavaee and C. Ding.
RECENT RESEARCH EXPERIENCE
1.
Approximability of Data Packing :
A program can benefit from improved cache block utilization when contemporaneously accessed data elements are placed in the same memory block. This can reduce the program’s memory block working set and thereby, reduce the capacity miss rate. We formally define the problem of data packing for an arbitrary cache size and packing factor (the number of elements fitting in a cache block) and study how well the optimal solution can be approximated for two dual problems. On the one hand, we show that the cache hit maximization problem is approximable within a constant factor, for every fixed cache size. On the other hand, we show that unless P = NP , the cache miss minimization problem cannot be efficiently approximated.
2
2.
Code Layout Optimization :
We define a model of reference affinity and use it to improve the code layout, via both function reordering and interprocedural basic block reordering. We have implemented this tool as a link time optimization (LTO) pass in the LLVM compiler infrastructure.
The use of LTO has made the packaging of the tool very stable. We have been able to optimize interpreters like Python, Perl, Ruby, and even PyPy (which uses a Just-in-Time compiler), and achieve up to 10% improvement in runtime via function reordering and up to
40% improvement via basic block reordering. The source code for this tool can be found in https://github.com/rlavaee/code-layout-optimizer .
3.
Markov Chain Modeling of Optimal Cache :
We model the behavior of an optimal cache (a cache with optimal replacement policy, a.k.a.
OPT cache) over a truly random sequence as a Markov chain. Besides proving the ergodicity of the chain, we obtain closed-form formulas for three special cases of the cache performance; the cases where the OPT stack distance is equal to 1, 2, and the cache size. The source code for this model can be found in https://github.com/rlavaee/opt-markov-chain .
TEACHING EXPERIENCE
• Teaching assistant for Introduction to Cryptography , Prof. Venkitasubramaniam,
Fall 2013.
• Teaching assistant for Advanced Algorithms , Prof. Stefankovic, Spring 2013.
• Teaching assistant for Art of Programming , Dr. Singhal, Spring 2012.
• Teaching assistant for Compiler Design , Dr. Jaberipur, Fall 2010.
• Instructor for Olympiad in Informatics preparation classes at Farzanegan High
School, 2009–2010.
– Taught Combinatorics and Elementary Game Theory.
PRESENTATIONS
• ABC-Optimizer: Affinity Based Code Layout Optimizer, 12nd Workshop on
Compiler-Driven Performance, Markham, Ontario, Canada, November 2013.
• Unweighted Coalitional Manipulation Under the Borda Rule is NP-Hard, Theory
Canal at University of Rochester, Rochester, NY, December 2012.
WORK EXPERIENCE
• Student Internship at Roshd Technology Center, Tehran, Iran, Summer 2010.
I developed a web-based information system together with a mobile application builder that provides system clients with access to updated data through Short Message Service, adaptable to most information environments.
• Graduate Curriculum Committee, Computer Science Department, University of
Rochester, 2014.
• Head of Sports Committee at Students’ Society of Sharif University, 2010–2011.
• Member of Internet Committee at Students’ Society of Sharif University, 2009–2010.
3
TECHNICAL SKILLS
• Programming Languages : C, Java (J2SE, J2ME), C++, Ruby, Lisp, R
• Compilation Tools : LLVM, GNU Binutils
• Web/DB/Distributed Technologies : Javascript, PHP, MySQL, Symfony,
Hadoop
• Operating Systems : Unix, Linux, Windows
4