Code Monkey home page Code Monkey logo

scalingbenchmark_specfem2d's Introduction

Note of installation and scaling test using SPECFEM2D


Installation

Following SPECFEM2D manual "Chapter 2"

  1. Download SPECFEM2d with git clone https://github.com/geodynamics/specfem2d.git.
  2. Go to specfem2d directory and type ./configure FC=gfortran CC=gcc MPIFC=mpif90 --with-mpi. If using ifort, specify with ./configure FC=ifort MPIFC=mpif90 --with-mpi.
    NOTE: If an error occurs, check FLAGS_CHECK in Makefile after ./configure ....
    It worked without any error with macOS Catalina 10.15.7; GNU Fortran (GCC) 8.2.0; Apple clang version 12.0.0 (clang-1200.0.32.2); MPICH Version: 3.2.1
  3. Type make to compile executable files.

Simulation model setup

  • 200km * 200km 2D full space P-SV elastic wave propagation.
  • Total NSTEP = 5000, timestep = 7.0e-3 [s].
  • Number of control nodes per element = 4
  • Grid size = 250m
  • Number of element = 640000
  • Total number of grid point = 10250000
  • PML absorbed boundary condition.
  • Point source at the center of medium

plot_example

How to run the simulation

  1. Copy the example project Benchmark_fullspace into specfem2d/EXAMPLES/. You can remove the other examples, but please put it into EXAMPLE as the script uses relative paths.

  2. Go to specfem2d/EXAMPLES/Benchmark_fullspace/ and set number of processors in DATA/Par_file, line 20: NPROC=1.

  3. Run sh run_benchmark.sh.
    This shell script conducts the meshing and then computes wave propagation.

  4. To plot waveform to validate your calculation, go to specfem2d/EXAMPLES/Benchmark_fullspace/plot_result and run python validate_waveform.py 1, where the number indicates the number of processors used like OUTPUT_FILE_NP1.
    NOTE: You need the following python modules: numpy (1.19.1); pandas (1.1.3);scipy (1.5.2). Versions are not strict, but please check it if your module is too old. validation_result

  5. specfem2d/EXAMPLES/Benchmark_fullspace/plot_result/plot_cputime.py is a script to plot scalability of parallelization. Please note the number of cores and associated cputime from output (stdout), and add it into the script. You can plot with python plot_cputime.py

scalingbenchmark_specfem2d's People

Contributors

kura-okubo avatar

Watchers

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