Code Monkey home page Code Monkey logo

heat2d's Introduction

Heat 2D

Problem description

The purpose of the program is to simulate heat transfer to a surface. We have an ๐‘€ร—๐‘ table, where each element of the table is a point in space and has a specific temperature. The initial temperature is high in the center and zero at the outer elements. The system changes state over time. This is because each point influences and is influenced by its neighbors. Neighboring elements are those that are above, below, to the right and left of an element. The outer elements don't change values as they are considered elements that absorb or emit heat in the system.

The program given as a model for the requirements of the exercise is available here and the goal is to evaluate, redesign and improve it in order to better scale. We will compare the given program in time, in acceleration and efficiency with those that will design in MPI, in MPI + OpenMP (hybrid) and in Cuda.

Compilation

MPI

mpicc -g -Wall -o grad1612_mpi_heat grad1612_mpi_heat.c
mpiexec -n 4 ./grad1612_mpi_heat

MPI + OpenMP (Hybrid)

mpicc -g -Wall -fopenmp -o grad1612_hybrid_heat grad1612_hybrid_heat.c
mpiexec -n 4 ./grad1612_hybrid_heat

CUDA

nvcc grad1612_cuda_heat.cu -o grad1612_cuda_heat
./grad1612_cuda_heat

heat2d's People

Contributors

patschris avatar

Watchers

James Cloos 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.