Public project portfolio for Paul Kienzle
- Over the past two years I have been active in the SasView project,
primarily creating a plugin architecture for small angle scattering
models written in C to be run on OpenCL enabled computers. We are trying
to maximize performance on commodity hardware while preserving accuracy.
In addition to tuning the code, this sometimes requires numerical analysis
to improve the accuracy, allowing the models to be computed with single
precision floating point values. Supporting a very broad range of graphics
cards requires automated testing as well careful programming
to work around the idiosyncracies in the compilers and libraries
provided by the different hardware vendors.
- For uncertainty analysis in modeling and inverse problems, Bayesian analysis
using Markov Chain Monte Carlo is an effective black box procedure. Define
your cost function as a probability distribution and MCMC can pull a sample
from the multidimensional probability density function which you can use to
get information about confidence intervals and parameter correlations. The
Bumps package was developed to provide fitting and uncertainty analysis for
Refl1D, but has since been used for fitting problems in other domains such as
triple axis spectometry. We plan to make this an independent package during
the summer of 2012, with easy installation from pypi.
- For some many kinds of science the raw data needs to be transformed
through multiple steps and combined with other information to bring it
to a state where it can be modelled. We developed a package which
allows us to do this on the web. We are using a visual programming model
which allows us to wire together the transformations. My contributions to
this has primarily been to the backend infrastructure.
students produce the front end. Dataflow is live at
ReflWeb. A manuscript is in preparation.
- Much of my work at NIST has been in reflectometry
analysis, which allows users to reconstruct the depth profile of a sample
from the measured reflection. These projects are hosted on
but developed on GitHub.
- Periodic table
- There are many large data sets associated with nuclei and ions in the
periodic table. No one application needs all of them, but they can all
share the basic infrastructure. The periodic table package is a
periodic table written in python which allows third party extensions which
add attributes to the element, isotope or ion to be independently managed
and installed. It includes a chemical formula calculator, but stops short
of structural representations of molecules.
- I made major contributions to the octave-forge project, gathering
contributions from the community and my own code into a set of independently
installed third party packages for Octave. I have not been active in
this community for a number of years.
- Personal projects
- Being personal these will be of minimal interest to you, dear reader.
My github personal webpage
(this page) is hosted here, as well as
recent experiments with python.
Publications are listed on google scholar