Code Monkey home page Code Monkey logo

lio's Introduction

LIO Project

LIO is a Quantum Mechanical software based on Density Functional Theory (DFT) and real time Time Dependent Density Functional Theory (TD-DFT).

The most computationally intensive calculations are ported to use graphical processors which support CUDA (e.g. Nvidia Maxwell, Fermi, Kepler and Tesla families).

REQUIREMENTS

  • Intel MKL (Math Kernel Library).
  • Intel C++ and Fortran Compiler (can be obtained with a non-commercial license).
  • NVIDIA CUDA (for compiling GPU version).
  • GNU Make.
  • Python 2.7 (for test scripts)

COMPILATION

The program can be compiled using the make command. The following options can be used to modify compilation. For example, the following compiles the GPU kernels.

make cuda=1

Available options:

  • dbg: enable debugging information. It also enables several asserts which degrade performance.

  • cpu: utilized non-optimized kernels in CPU instead of GPU (not recommended, only to compare running the same code in CPU and GPU).

  • time: enables the timers to obtain detailed timing information from different parts of the program.

  • profile: enabling gprof profiling information.

  • cpu_recompute: recomputes=0 mantains in memory the value of the functions for each point (more memory is used but execution time goes down by around 10%). Only used for the CPU kernels.

  • full_double: generate the application using full double precision instead of mixed precision (which is the default).

TESTS

To run the test suite, you need to install python 2. It is already present in most Linux distributions.

The test suite can be ran from the tests directory and running

  ./run_tests.py

The first argument to the run_tests.py program is a regular expression (Python Documentation) which matches the folder names in the test directory. For example, running from the tests directory:

  ./run_tests.py --filter_rx GPU

runs only the tests for GPU. For more options run

  ./run_tests.py --help

CONTRIBUTING

Before contributing, make sure you have set up the git hooks for the project. That can be done either by running a clean compile with make, or by executing

  make hooks

INSTALLATION

After setting LD_LIBRARY_PATH to point to the MKL and ICC libraries.

Sample compilation for CPU

  make -j cpu=1 time=1

After setting LD_LIBRARY_PATH to point to both MKL, ICC and CUDA libraries.

Sample compilation for GPU

  make -j cuda=1 time=1

Both result in 2 dynamic libraries:

  1. g2g/libg2g.so
  2. lioamber/liblio-g2g.so

Be sure to add both dynamic libraries to LD_LIBRARY_PATH before running Amber.

PUBLICATIONS

  1. Matías A. Nitsche, Manuel Ferreria, Esteban E. Mocskos and Mariano C. González Lebrero, GPU Accelerated Implementation of Density Functional Theory for Hybrid QM/MM Simulations. J. Chem. Theory Comput., 2014, 10 (3), pp 959–967.

  2. Uriel N. Morzan, Francisco F. Ramírez, M. Belén Oviedo, Cristián G. Sánchez, Damián A. Scherlis and Mariano C. González Lebrero, Electron dynamics in complex environments with real-time time dependent density functional theory in a QM-MM framework. J. Chem. Phys. 140, 164105 (2014).

lio's People

Contributors

manuelf avatar williamagudelo82 avatar jpdarago avatar emocskos avatar chopkins906 avatar juancarlosnombre avatar

Watchers

James Cloos avatar Hubertus van Dam avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.