Skip to content

A parallel implementation of XPCS analysis for APS beamline 8-ID-I

License

Notifications You must be signed in to change notification settings

lbl-camera/xpcs-eigen

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

X-Ray Photon Correlation Spectroscopy.

Summary


XPCS (X-ray Photon Correlation Spectroscopy) is experimental technique used at Sector 8 of APS. The main principle behind the technique is to study the dynamics in materials at nano-scale by studying correlations in time series of area detector images. These correlations involve analyzing the pixel-by-pixel correlations for different time intervals. A multi-tau algorithm is commonly used that defines the time intervals in a logarithmic manner. The current state-of-the-art detector at Sector 8 is capable of acquiring megapixels of frames at a rate of 60 Hz (120 MB/sec). A suite of CCD detectors are used with data rates ranging from 4 MB/sec to 120 MB/sec. The next generation Fast CCD2 detector being built in collaboration between ANL and LBL is projected to run at 200 Hz generating 400 MB/sec of data. The challenge is to compute these correlations at a decent rate that comes within a small factor of the rate of the data acquisition. Doing the analysis at (near) real time saves a lot of effort and time of the scientists.

Implementation


This C++ implementation , currently a work in progress, is based on the Eigen (http://eigen.tuxfamily.org/index.php?title=Main_Page) library. We are handling both sparse and non-sparse data using the equivalent constructs from the Eigen library.

Compiling


You will need to have a latest (>= 3.5) version ofcmake installed in order to compile this project. Additionally, you need the HDF5 C library. Please follwing the instruction here (https://support.hdfgroup.org/HDF5/release/obtain518.html) for installing it.

Next, follow these steps:

  • Install using apt, yum, pacman or your favourite package manager:
    1. eigen3
    2. hdf5
    3. gflags
    4. spdlog
  • Create a build directory under the root of the project mkdir build && cd build
  • cmake ../
  • make -j

This will generate the binary executable corr.

Running


The corr executable accepts two input arguments. The HDF5 containing the configuration for the analysis job and an IMM file containing the binary data.

./corr configuration.hdf5 data.imm

About

A parallel implementation of XPCS analysis for APS beamline 8-ID-I

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 95.5%
  • Python 3.5%
  • Other 1.0%