Skip to main content


My interests include parallel processor architectures and parallel computing, high-level hardware design techniques, and the application of advanced computing methods to the natural sciences.

Read on for some projects I have led or contributed to, or browse my publications.


The Execution Migration Machine (EM²) is a large-scale shared-memory multicore processor fabricated in 45nm ASIC; with 110 custom stack-architecture cores, it features the highest core count to date among general-purpose multicores. The chip implements a fine-grained thread migration mechanism entirely in hardware: the ability to transfer a partial thread context allows core-to-core migrations in 4 cycles (neighbor core, minimum context) to 33 cycles (cross-chip, full context) given no interconnect congestion. The unified shared memory implementation leverages the migration mechanism, eschewing the scalability problems and verification costs of cache coherence protocols. A hardware predictor learns application access patterns and automatically migrates threads among the processor cores.


HORNET is a highly configurable, cycle-level multicore simulator with support for a variety of memory hierarchies, interconnect routing and VC allocation algorithms, as well as accurate power and thermal modeling. Its multithreaded simulation engine divides the work equally among available host processor cores, and permits either cycle-accurate precision or increased performance at some accuracy cost via periodic synchronization. HORNET can be driven in network-only mode by synthetic patterns or application traces or in full multicore mode using a built-in MIPS core simulator.

Download HORNET »


The Stochastic Simulation Compiler (SSC) creates exact, spatially resolved stochastic simulations of biochemical reaction networks from intuitive, high-level descriptions, allowing non-programmers to quickly describe and simulate complex biochemical systems. SSC produces very fast simulators by directly compiling the reaction descriptions into native machine code. In addition to extensive use in immunology research, SSC has enabled novel applications like for the nanomedicine online game NanoDoc.

Download SSC » Try NanoDoc »


The protein homology modeling tool Spanner threads a protein sequence onto an existing three-dimensional model. Residues that align to the template are replaced directly, and any gaps caused by indels are matched against a database of suitably sized fragments extracted from naturally occurring proteins for which 3D structures are known. The best-fitting fragments are then spliced onto the template structure and the result is refined using energy minimization. You can try out Spanner as part of a large tool suite at the Osaka University Systems Immunology lab.

Try Spanner »


AmyloidMutants uses a statistical mechanics approach to predict how a protein sequence can form an amyloid structure. Critically, the tool models an entire mutational landscape, and is able to predict the effect of protein sequence mutations on the fibril conformation and stability.

Try AmyloidMutants »


RNAensign is a tool to design artificial RNA sequences that fold into specific structures. Unlike other inverse-folding tools, RNAensign uses an efficient global sampling approach to examine large regions of the mutational landscape under structural and thermodynamic constraints until a suitable RNA sequence is found. You can use RNAensign at the McGill University Computational Structural Biology lab.

Try RNAensign »