OMR for the Internet-of-Things―Student Recruitment
The Centre for Advanced Studies – Atlantic (CAS Atlantic) within the Faculty of Computer Science at the University of New Brunswick in Fredericton, New Brunswick, Canada, pools the research efforts of six faculty members, working in a variety of projects (see http://www.unb.ca/research/casatlantic/). Many of our projects are in partnership with IBM Canada, and while we work directly with them on elements of their internal, proprietary code, UNB theses are fully public documents and candidates will be expected to produce research results on par with any comprehensive university in Canada.
We are currently seeking a number of graduate students for our OMR for the Internet-of-Things project. Open-sourced from IBM, “Eclipse-OMR is enterprise-class runtime technology that delivers high performance without sacrificing versatility or robustness” (see http://www.eclipse.org/omr/). We have two themes within the project, Python on OMR and OMR in Resource Constrained Environments, and four sub-projects within each theme (see below).
This project will require substantial hands-on and experimental work; all candidates will require extensive, in-depth background in systems-level programming, including a knowledge of C/C++, and familiarity with standard software engineering practices. Familiarity with Linux and open-source software development would be a plus. Knowledge and expertise in the inner workings of the OMR core including memory management, threading, data storage, would be an asset, but otherwise will be expected to be acquired during the course of the project. Individual sub-projects (below) have additional qualifications.
Applicants to the Computer Science PhD program at UNB normally require a Master's degree in computer science or a closely related area; admission to a Master’s degree requires a Bachelor’s degree in the same fields (please see http://www.unb.ca/gradstudies/admissions/index.html and http://www.unb.ca/international/). These positions are “fully funded” for qualifying students; the exact funding package is subject to finalization, but will be consistent with other fully funded students in Computer Science at UNB.
Due to our relationship with IBM, any student working in the CAS Atlantic lab must first be cleared by IBM before being offered a position.
Projects and Positions
Theme 1. Python on OMR
1.1. Interpreter Integration
We are seeking PhD and Master’s students to work with a research assistant on porting a Python runtime to OMR. The focus will be on demonstrating the reusability of OMR garbage collection (GC) and just-in-time (JIT) compilation components. Research will be specifically conducted into extending OMR in novel ways to better support Python (or vice-versa) and balancing fast start-up time for scripting applications against good performance for compute-intensive workloads.
In addition to the qualifications listed above for all candidates, knowledge and expertise with Python and programming language concepts like GC, JIT and bytecode would be an asset for these positions.
1.2. High Performance Language Interoperability
We are seeking PhD and Master’s students to work on advancing the state-of-the-art in language interoperability. The focus will be on designing and building a framework for Python-Java interoperability and then extending interoperability to a third language (Ruby is a likely candidate). Research will be specifically conducted into high performance, transparent interoperability and extensibility for Python users and OMR extensions to facilitate interoperability.
In addition to the qualifications listed above for all candidates, knowledge of programming language concepts and expertise with specific languages Python, Java and Ruby, would be an asset for these positions.
1.3. Fast and Safe Execution of Unmanaged Extensions
We are seeking a PhD student to work with a research assistant to provide the ability to use existing unmanaged Python extension modules in order to achieve high performance, without introducing memory leaks and memory access errors, or requiring user source code changes. Research will be specifically conducted into creating sandboxed execution of Python extensions, requiring consistent experimental evaluation against a benchmark suite.
In addition to the qualifications listed above for all candidates, knowledge and expertise with Python, language interoperability and memory management would be an asset for these positions.
1.4. Effective Parallelism
We are seeking PhD and Master’s students to work on supporting multiprocessing in Python in order to exploit modern multicore hardware. The focus will be on using the PGAS (parallel global address space) model to significantly simplify the implementation of parallel algorithms on distributed and shared memory computers. Research will be specifically conducted into enabling parallelism while dealing with Python's Global Interpreter Lock (GIL), and implementing distributed garbage collection efficiently.
In addition to the qualifications listed above for all candidates, knowledge and expertise with parallel programming frameworks and/or languages such as MPI, OpenMP or X10, would be an asset for these positions.
Theme 2. OMR in Resource Constrained Environments
2.1. Embedded/Internet-of-Things/Mobile OMR
We are seeking PhD and Master’s students to work with a research assistant on porting the current OMR environment to the 64-bit ARM platform. The focus will be on adapting the OMR technology to support a diverse resource constrained system while maintaining its general goals of providing a generic run-time environment with support for multiple runtime languages. Research will be specifically conducted into real-time scheduling, as well as automatic memory management techniques to minimize the overall memory footprint.
In addition to the qualifications listed above for all candidates, knowledge and expertise in real-time and embedded systems would be an asset for these positions.
2.2. Ahead of Time Compiled Code Generation
We are seeking PhD and Master’s students to work with a post-doctoral researcher on designing and implementing generic ahead-of-time (AOT) code-compilation support for OMR and then extending AOT to support a scripting language, such as Python. Current implementations of AOT will be analyzed in detail and research will be specifically conducted into deciding what should be stored in persistent memory to gain best advantage in terms of size and execution speed.
In addition to the qualifications listed above for all candidates, knowledge and expertise in programming languages and compiler construction would be an asset for these positions.
2.3. MicroJIT for OMR
We are seeking PhD and Master’s students to work with a post-doctoral researcher and a research assistant on improving the performance of OMR in resource constrained environments through enhanced just-in-time (JIT) compilation. Starting from the existing IBM MicroJIT implementation, specific research will be conducted into utilizing MicroJIT for languages other than Java and for applying MicroJIT in embedded OMR.
In addition to the qualifications listed above for all candidates, knowledge and expertise in real-time and embedded systems and/or compiler construction would be an asset for these positions.
2.4. Garbage Collection with Reference Counting
We are seeking Master’s students to work on improving automatic garbage collection in OMR, particularly for dynamic languages such as Python. A solution based upon reference counting is proposed and research will be specifically conducted into studying the known shortcomings of reference counting and then various optimizations to overcome said shortcomings will be implemented and evaluated.
In addition to the qualifications listed above for all candidates, knowledge and expertise in dynamic languages and multi-processor environments would be an asset for these positions.
Send your C.V. and unofficial transcripts by email to: email@example.com.
Please note we can only extend a formal offer to a student that has also been accepted into graduate school by UNB (the processes are separate). For more information please see http://www.unb.ca/international/ and http://www.unb.ca/gradstudies/admissions/index.html.Please specify which project or projects are of interest and whether you are applying for a PhD or Master’s position.