IMP logo

IMP::benchmark Namespace Reference


Detailed Description

This module provides benchmarks of a variety of aspects of IMP.

Author:
Daniel Russel, Dina Schneidman
Version:
1.0
Overview:
The benchmarks are run daily on flute.ucsf.edu. The results are displayed normalized against the fastest runtime in each set (with a few exceptions, noted below). Each benchmark is shown first in a "fast" build and second in a "release" build with checks disabled to give an idea of the speed comparison. The benchmark source codes can be found in the bin directory of the benchmark module.
A simple Brownian dynamics simulation with the specified number of particles
bdfast.png
bdrelease.png

A simple test modifying the particles and (for the 'score' entries) evaluating a simple, incremental, score.

changingfast.png
changingrelease.png

The various IMP::core::ClosePairFinder implementations are benchmarked on random sets of particles. The benchmarks for the quadratic one are listed as taking 10x less time than they did.

cpffast.png
cpfrelease.png

A benchmark of the various close pairs finders in the context of a simulation. The benchmarks for the quadratic one are listed as taking 10x less time than they did.

colfast.png
colrelease.png

A special close pair finder is provided for rigid bodies, name IMP::core::RigidClosePairsFinder. Here it is compared against using all the member particles.

rigidfast.png
rigidrelease.png

There are several ways of doing connectivity restraints in IMP: IMP::misc::ConnectedPairContainer and IMP::core::ConnectivityRestraint. They are benchmarked here.

connectivityfast.png
connectivityrelease.png

The next benchmark looks at evaluating restraints on various sorts of containers, namely IMP::core::ListSingletonContainer and IMP::core::SingletonContainerSet.

containerfast.png
containerrelease.png

When peforming lots of operations on a set of cartesian coordinates and is faster to copy them into a IMP::algebra::Vector3Ds than to access them in the IMP::core::XYZ decorator each time. This benchmark gives an idea of the speed tradeoffs involved.

xyzfast.png
xyzrelease.png

Examples
Examples can be found on the IMP.benchmark examples page.
License:
LGPL. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
Publications:
  • Daniel Russel, Keren Lasker, Ben Webb, Dina Schneidman, Javier Velazquez-Muriel, Andrej Sali, “Integrative assembly modeling using IMP”, submitted, 2010. This paper provides an overview of the key concepts in IMP and how to apply them to biological problems.
  • Frank Alber, Friedrich Foerster, Dmitry Korkin, Maya Topf, Andrej Sali, “Integrating diverse data for structure determination of macromolecular assemblies”, Annual Review of Biochemistry, 2008. This paper provides a review of the integrative structure determination methodology and various data sources that can be used.


Functions

std::string get_data_path (std::string file_name)
 Return the path to installed data for this module.
std::string get_example_path (std::string file_name)
 Return the path to installed example data for this module.
std::string get_module_name ()
const VersionInfoget_module_version_info ()
void report (std::string name, double value, double check)
 Report a benchmark result in a standard way.

Function Documentation

std::string IMP::benchmark::get_data_path ( std::string  file_name  ) 

Return the path to installed data for this module.

Each module has its own data directory, so be sure to use the version of this function in the correct module. To read the data file "data_library" that was placed in the data directory of module "mymodule", do something like

    std::ifstream in(IMP::mymodule::get_data_path("data_library"));
This will ensure that the code works when IMP is installed or used via the tools/imppy.sh script.

std::string IMP::benchmark::get_example_path ( std::string  file_name  ) 

Return the path to installed example data for this module.

Each module has its own example directory, so be sure to use the version of this function in the correct module. For example to read the file example_protein.pdb located in the examples directory of the IMP::atom module, do

    IMP::atom::read_pdb(IMP::atom::get_example_path("example_protein.pdb", model));
This will ensure that the code works when IMP is installed or used via the tools/imppy.sh script.

void IMP::benchmark::report ( std::string  name,
double  value,
double  check 
)

Report a benchmark result in a standard way.

The last value is a check value which can be used to make sure the computations were semi-ok.


Generated on Mon Mar 8 23:08:52 2010 for IMP by doxygen 1.5.8