About
53
Publications
12,056
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
1,023
Citations
Introduction
Currently working at MaxLinear to create optimized implementations of novel machine learning algorithms.
Current institution
Additional affiliations
July 2013 - present
Cray Inc. -- The Supercomputer Company
Position
- Application and Benchmark Analyst
Description
- I help domain scientists to port and optimize their code for the highest performing computers in the world.
August 2010 - January 2012
Joint Institute for Computational Science
Position
- Research Associate
Description
- Wrote HPC code scaling molecular docking software Dock6 to thousands of cores on Kraken. Created an automatic phylogenetic tree creation pipeline with 3D and 2D tree viewer.
May 2010 - August 2010
National Institute for Computational Sciences
Position
- Computational Sciences Intern
Description
- Wrote HPC code to scale NCBI’s blastall to 98,000 cores on Kraken. Created 2D and 3D protein domain visualization software.
Education
August 2010 - August 2013
August 2002 - May 2010
Publications
Publications (53)
The “Force for Good” pledge of intellectual property to fight COVID-19 brought into action HPE products, resources and expertise to the problem of drug/vaccine discovery. Several scientists and technologists collaborated to accelerate efforts towards a cure. This paper documents the spirit of such a collaboration, the stellar outcomes and the techn...
Is it feasible to create an analysis paradigm that can analyze and then accurately and quickly predict known drugs from experimental data? PharML.Bind is a machine learning toolkit which is able to accomplish this feat. Utilizing deep neural networks and big data, PharML.Bind correlates experimentally-derived drug affinities and protein-ligand X-ra...
We propose a genetic algorithm (GA) for hyperparameter optimization of artificial neural networks which includes chromosomal crossover as well as a decoupling of parameters (i.e., weights and biases) from hyperparameters (e.g., learning rate, weight decay, and dropout) during sexual reproduction. Children are produced from three parents; two contri...
We propose a genetic algorithm (GA) for hyperparameter optimization of artificial neural networks which includes chromosomal crossover as well as a decoupling of parameters (i.e., weights and biases) from hyperparameters (e.g., learning rate, weight decay, and dropout) during sexual reproduction. Children are produced from three parents; two contri...
Deep learning researchers are increasingly using Jupyter notebooks to implement interactive, reproducible workflows with embedded visualization, steering and documentation. Such solutions are typically deployed on small-scale (e.g. single server) computing systems. However, as the sizes and complexities of datasets and associated neural network mod...
"Ask not what your compiler can do for you, ask what you can do for your compiler."
--John Levesque, Director of Cray’s Supercomputing Centers of Excellence
The next decade of computationally intense computing lies with more powerful multi / manycore nodes where processors share a large memory space. These nodes will be the building block for syst...
We present a scalable cross-platform hybrid MPI / OpenMP / OpenACC implementation of the Divide-Expand-Consolidate (DEC) formalism with portable performance on heterogeneous HPC architectures. The Divide-Expand-Consolidate formalism is designed to reduce the steep computational scaling of conventional many-body methods employed in electronic struct...
We present performance results and an analysis of a message passing interface (MPI)/OpenACC implementation of an electromagnetic solver based on a spectral-element discontinuous Galerkin discretization of the time-dependent Maxwell equations. The OpenACC implementation covers all solution routines, including a highly tuned element-by-element operat...
Relative debugging traces software errors by comparing two executions of a program concurrently - one code being a reference version and the other faulty. Relative debugging is particularly effective when code is migrated from one platform to another, and this is of significant interest for hybrid computer architectures containing CPUs accelerators...
The porting of a key kernel in the tracer advection routines of the Community Atmosphere Model - Spectral Element (CAM-SE) to use Graphics Processing Units (GPUs) using OpenACC is considered in comparison to an existing CUDA FORTRAN port. The development of the OpenACC kernel for GPUs was substantially simpler than that of the CUDA port. Also, Open...
A tri-hybrid port of General Electric's in-house, 3D, Computational Fluid Dynamics (CFD) code TACOMA is created utilizing MPI, OpenMP, and OpenACC technologies. This new port targets improved performance on NVidia Kepler accelerator GPUs, such as those installed in the world's second largest supercomputer, Titan, the Department of Energy's 27 petaF...
This is the source code for the 9-16-2012 version of the fsmem library.
The "fsmem" (file system memory) library is designed to allow Linux applications that allocate memory based on the malloc() interface to access more memory than is available in system RAM. This is accomplished by memory mapping a large file on disk into the application's address space, and then allowing the ptmalloc allocator to carve up this large...
Based on recent published articles, the growth of genomic data has overtaken and outpaced both performance improvements of storage technologies and processing power due to the revolutionary advancements of next generation sequencing technologies. By bringing down the costs and increasing throughput by many orders of magnitude with sequencing techno...
The exact nature of the relationship among species range sizes, speciation, and extinction events is not well understood. The factors that promote larger ranges, such as broad niche widths and high dispersal abilities, could increase the likelihood of encountering new habitats but also prevent local adaptation due to high gene flow. Similarly, low...
I/O performance in scientific applications is an often neglected area of concern during performance optimizations. However, various scientific applications have been identified which benefit from I/O improvements due to the volume of data or number of compute processes utilized. This work details the I/O patterns and data layouts of real scientific...
The revolutionary advancements of next generation sequencing technologies bring down costs and increase throughput by many orders of magnitude, resulting in the exponential growth of genomic data in recent years. Genomic data contains invaluable information directly related to human health. However, data analysis becomes increasingly difficult and...
We describe our experience developing custom C code for simulating evolution and speciation dynamics using Kraken, the Cray XT5 system at the National Institute for Computational Sciences. The problem's underlying quadratic complexity was problematic, and the numerical instabilities we faced would either compromise or else severely complicate large...
Adaptive radiation is defined as the evolution of ecological and phenotypic
diversity within a rapidly multiplying lineage (Simpson 1953; Schluter 2000).
Examples include the diversification of Darwin’s finches on the Galapagos islands,
Anolis lizards on Caribbean islands, Hawaiian silverswords, a mainland
radiation of columbines, and cichlids of...
A recent study of a pair of sympatric species of cichlids in Lake Apoyo in Nicaragua is viewed as providing probably one of the most convincing examples of sympatric speciation to date. Here, we describe and study a stochastic, individual-based, explicit genetic model tailored for this cichlid system. Our results show that relatively rapid (<20,000...
A recent study of a pair of sympatric species of palms on the Lord Howe Island is viewed as providing probably one of the most convincing examples of sympatric speciation to date. Here we describe and study a stochastic, individual-based, explicit genetic model tailored for this palms system. Overall, our results show that relatively rapid (<50,000...
The "Machiavellian intelligence" hypothesis (or the "social brain" hypothesis) posits that large brains and distinctive cognitive abilities of humans have evolved via intense social competition in which social competitors developed increasingly sophisticated "Machiavellian" strategies as a means to achieve higher social and reproductive success. He...
The "Machiavellian intelligence" hypothesis (or the "social brain" hypothesis) posits that large brains and distinctive cognitive abilities of humans have evolved via intense social competition in which social competitors developed increasingly sophisticated "Machiavellian" strategies as a means to achieve higher social and reproductive success. He...
Adaptive radiation is defined as the evolution of ecological and phenotypic diversity within a rapidly multiplying lineage. When it occurs, adaptive radiation typically follows the colonization of a new environment or the establishment of a “key innovation,” which opens new ecological niches and/or new paths for evolution. Here, we take advantage o...
We describe our experience developing custom C code for simulating evolution and speciation dynamics using Kraken, the Cray XT5 system at the National Institute for Computational Sciences. The prob- lem's underlying quadratic complexity was problematic, and the numerical instabilities we faced would either compromise or else severely complicate lar...
Questions
Questions (2)
I'm looking to select an open source debugger that has a codebase that is reasonable to work with for the purpose of adding a new data visualization technique. I was thinking about working with DDD (Data Display Debugger) but wanted to become aware of other options if possible. I realize I could write a new GUI on top of something like GDB, but that seems a bit heavier than needed and perhaps less useful in the end.
Does anyone have experience changing or hacking the DDD or GDB source code? Is there another common open source debugger I should consider modifying instead?
Does anyone build large phylogenetic trees with PhyML? I created software to transparently increase the "memory" available to apps in Linux, by allocating memory blocks from disk rather than RAM. I may not use it, anyone interested?