Giter Club home page Giter Club logo

parallel_computing's Introduction

A Practical Guide to Parallel Computing in Macroeconomics

This repository contains the source code referenced in the paper A Practical Guide to Parallel Computing in Macroeconomics by Jesús Fernández-Villaverde and David Zarruk Valencia.

Abstract from the paper

Parallel computing opens the door to solving and estimating richer models in Economics. From dynamic optimization problems with high dimensionality to structural estimation with complex data, readily-available and economical parallel computing allows researchers to tackle problems in Economics that were beyond the realm of possibility just a decade ago. This paper describes the basics of parallel computing for economists, reviews widely-used implementation routines in Julia, Python, R, Matlab, C++ (OpenMP and MPI) and CUDA and compares performance gains using as a test bed a standard life-cycle problem such as those used in macro, labor, and other fields.

The file Makefile contains the compilation flags used in Linux and can be used to execute the codes in every language.

Files

  1. Cpp_main.cpp: C++ code for OpenMP
  2. CUDA_main.cu: CUDA code
  3. Julia_main_parallel.jl: Julia code
  4. Julia_main_pmap.jl: Julia code
  5. Julia_threads.jl: Julia code with @threads parallelization
  6. Matlab_main.m: Matlab code
  7. MPI_host_file: MPI host file
  8. MPI_main.cpp: C++ code for MPI
  9. Python_main.py: Python code
  10. Python_numba_main.py: Python code with numba parallelization
  11. Rcpp_main.cpp: C++ code for Rcpp package in R
  12. Rcpp_main.R: Rcpp code
  13. R_main.R: R code
  14. Makefile: Makefile to execute codes

parallel_computing's People

Contributors

davidzarruk avatar floswald 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.