Data Analysis 2b(i) Minutes
Participants: Chair: Andrew McCluskey Scribe: Brian Maranville
shared work on a kernel
Mrinal and Arwel and Andrew described a desire for a shared calculation kernel, than can be optimized for efficiency, with an API available in various languages and validation available.
Emphasize speed, assume correctness
Arwel pointed out that speed = parallelization, which means openmp in many contexts, which becomes architecture and platform dependent quite fast.
Mrinal: start with something more accessible Brian: like ANSI C? Mrinal: yes.
Action item: create a github repo for working on shared kernel with verified outputs, along with wrappers (api) in at least
- python
- matlab
- c++
- java
Optimizers Also useful to have api access to optimizers of different types, to work with the kernel Action item: make one of these repos too
Resolution Also useful to have libraries available for resolution smearing. Arwel and Mrinal: just fourier-transform and multiply with gaussian, and fourier-transform back. Action item: another repo with algorithms for doing this (fast)
Shared problem definition language: Arwel: there’s no way to make a one-size-fits-all interface for users. Need to support: soft matter, polarized, magnetic layers, X-rays, etc. A library of approaches would be more helpful.
Strong resistance to single shared vocabulary.
Example: Arwel would parametrize a problem according to thickness, SLD, hydration of layers.
Share all parameters between models except SLD, one SLD for different deuteration-hydrogenation mixtures.
Andrew would use similar language to describe his problem.
Becky: using different modeling programs is made much more difficult by inconsistencies in the handling of e.g. roughness specification (does roughness n correspond to between layer n and n+1, or n-1 and n)
General agreement that there should be different user interfaces for specifying problems from different scientific areas.
Arwel pointed out that imposing a shared vocabulary for defining problems automatically creates restrictions on each program (how would we extend the vocabulary, for instance?)
Action item: standardise at least the way we talk about the roughness of layer N?