Parallel Computing in Numerical Simulation of Laser Deposition The objective of this proposed...

1
Parallel Computing in Numerical Simulation of Laser Deposition The objective of this proposed project is to research and develop an effective prediction tool for additive manufacturing processes for advanced materials and develop experimental methods to provide fundamental properties and establish validation data. Introduction Objective Figure 2. Macroscopic simulation results Results of simulation Future work Figure 3. Evolution of solidification microstructure Conclusions Figure 1. Laser deposition Using MPI in parallel computing seems to become more efficient with a higher number of processes. Initial partitioning can be very crucial in parallel computing with MPI. With variable partitioning in each step considering the available processes, some processes may not be efficiently used. In fact for the worst case with a higher number of processes for a small data set, some processes may leave out without any data to sort sequentially which shows inefficient use of processes. The first step is to establish macroscopic models including the thermal/fluid dynamics models and the residual stress model. Then we should also establish microscopic models,, such as the models for solidification microstructure and the solid- state phase transformations. We need modeling as-received grain structure, melting and epitaxial growth. The last thing is to do data collection and model validation. Parallel computing is accomplished by splitting up a large computational problem into smaller tasks that may be performed simultaneously by multiple processors. •MPI stands for “Message Passing Interface”. Library standard defined by a committee of vendors, implementers, and parallel programmers Used to create parallel programs based on message •100%portable: one standard, many implementations •Available on almost all parallel machines in C and Fortran •Over 100 advanced routines but 6 basic Approach Key Concepts of MPI •Used to create parallel programs based on message passing Normally the same program is running on several different processors Processors communicate using message passing •MPI is used to create parallel programs based on message passing •Usually the same program is run on multiple processors •The 6 basic calls in MPI are: MPI_INIT(…); MPI_COMM_SIZE(…); MPI_COMM_RANK(…); MPI_SEND(…); MPI_RECV(…); Call MPI_FINALIZE(…); Write a parallel program: #include <stdio.h> #include "mpi.h" main( int argc, char *argv[] ) { int myid, numprocs; MPI_Init( &argc, &argv ); MPI_Comm_rank( MPI_COMM_WORLD, &myid ); MPI_Comm_size( MPI_COMM_WORLD, &numprocs ); printf(“I am %d of %d\n", myid, numprocs ); MPI_Finalize(); } Acknowledgments This research was partially supported by the National Aeronautics and Space Administration Grant Number NNX11AI73A, the grant from the U.S. Air Force Research Laboratory, and Missouri S&T’s Intelligent Systems Center and Manufacturing Engineering program. Their support is greatly appreciated. Students: Xueyang Chen, Zhiqiang Fan, Todd E.Sparks, Department of Manufacturing Engineering Faculty Advisor: Dr. Frank Liou, Department of Manufacturing Engineering

Transcript of Parallel Computing in Numerical Simulation of Laser Deposition The objective of this proposed...

Page 1: Parallel Computing in Numerical Simulation of Laser Deposition The objective of this proposed project is to research and develop an effective prediction.

Parallel Computing in Numerical Simulation of Laser Deposition

The objective of this proposed project is to research and develop an effective prediction tool for additive manufacturing processes for advanced materials and develop experimental methods to provide fundamental properties and establish validation data.

Introduction

Objective

Figure 2. Macroscopic simulation results

Results of simulation

Future work

Figure 3. Evolution of solidification microstructure

Conclusions

Figure 1. Laser deposition

Using MPI in parallel computing seems

to become more efficient with a higher

number of processes.Initial partitioning can be very crucial in

parallel computing with MPI.With variable partitioning in each step

considering the available processes, some

processes may not be efficiently used. In

fact for the worst case with a higher

number of processes for a small data set,

some processes may leave out without

any data to sort sequentially which shows

inefficient use of processes.

The first step is to establish macroscopic models including the thermal/fluid dynamics models and the residual stress model.

Then we should also establish microscopic models,, such as the models for solidification microstructure and the solid-state phase transformations. We need modeling as-received grain structure, melting and epitaxial growth.

The last thing is to do data collection and model validation.

Parallel computing is accomplished by splitting up a large computational problem into smaller tasks that may be performed simultaneously by multiple processors.

•MPI stands for “Message Passing Interface”.Library standard defined by a committee of vendors, implementers, and parallel programmersUsed to create parallel programs based on message•100%portable: one standard, many implementations•Available on almost all parallel machines in C and Fortran•Over 100 advanced routines but 6 basic

Approach

Key Concepts of MPI

•Used to create parallel programs based on message passing

Normally the same program is running on several different processors

Processors communicate using message passing

•MPI is used to create parallel programs based on message passing

•Usually the same program is run on multiple processors

•The 6 basic calls in MPI are:MPI_INIT(…);MPI_COMM_SIZE(…);MPI_COMM_RANK(…);MPI_SEND(…);MPI_RECV(…);Call MPI_FINALIZE(…);

Write a parallel program:

#include <stdio.h>#include "mpi.h"

main( int argc, char *argv[] ){ int myid, numprocs;

MPI_Init( &argc, &argv ); MPI_Comm_rank( MPI_COMM_WORLD, &myid ); MPI_Comm_size( MPI_COMM_WORLD, &numprocs ); printf(“I am %d of %d\n", myid, numprocs ); MPI_Finalize();}

Acknowledgments

This research was partially supported by the National Aeronautics and Space Administration Grant Number NNX11AI73A, the grant from the U.S. Air Force Research Laboratory, and Missouri S&T’s Intelligent Systems Center and Manufacturing Engineering program. Their support is greatly appreciated.

Students: Xueyang Chen, Zhiqiang Fan, Todd E.Sparks,Department of Manufacturing Engineering

Faculty Advisor: Dr. Frank Liou,Department of Manufacturing Engineering