Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mpiCudaGeneric is a program transfer data from a machine to another with GPU using MPI and CUDA. #37309

Merged
merged 2 commits into from Apr 18, 2022

Conversation

AliinCern
Copy link
Contributor

@AliinCern AliinCern commented Mar 22, 2022

Program description:

In this program, we transfer data from one machine to GPU remotely in different approaches using MPI and CUDA.

Program Validation:

We have successfully compiled it with scram b runtests

Program Mechanism:

There are three approaches of transferring data, we call them parts:
Part 1: Transfer data from Root pageable memory to Host pageable memory using MPI, then allocate memory in GPU using
cudaMalloc. Finally, transfer data from Host pageable memory to GPU using cudaMemcpy.
Part 2: Transfer data from Root pageable memory to Host Pinned memory using MPI and cudaMallocHost, then allocate
memory in GPU using cudaMalloc. Finally, transfer data from Host Pinned memory to GPU using cudaMemcpy.
Part 3: Allocate memory in GPU using cudaMalloc, then transfer data from Root pageable memory to GPU memory
using MPI.

Program Measurements:

There are seven sections that we have measure time elapse:

  1. Time preparation from Root To Host.
  2. Time preparation from Host to GPU.
  3. Time operation on GPU, measured by Root.
  4. Time operation on GPU, measured by Host.
  5. Time operation on GPU, measured by Device.
  6. Time preparation from Host to Root.

Program command line options are:

[-np] number of processes or processors that you would like to run.
[-s] size of vectors that you would like to send, the type is float and there are two vectors.
[-t] number of repeating task on the Device(GPU) side.
[-a] number of repeating the part.
[-p] choice of what part to run in the program.
[-q] print Stander Deviation.
[-f] save the results into a file for each part.
[-h] for help.

@cmsbuild
Copy link
Contributor

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-37309/28947

  • This PR adds an extra 20KB to repository

Code check has found code style and quality issues which could be resolved by applying following patch(s)

@fwyzard
Copy link
Contributor

fwyzard commented Apr 5, 2022

@cmsbot, please test

@fwyzard
Copy link
Contributor

fwyzard commented Apr 5, 2022

@cmsbot, please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Apr 5, 2022

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-37309/29163

  • This PR adds an extra 20KB to repository

@cmsbuild
Copy link
Contributor

cmsbuild commented Apr 5, 2022

A new Pull Request was created by @AliinCern (Marafi) for master.

It involves the following packages:

  • HeterogeneousCore/CUDACore (heterogeneous)

@cmsbuild, @makortel, @fwyzard can you please review it and eventually sign? Thanks.
@makortel, @rovere this is something you requested to watch as well.
@perrotta, @dpiparo, @qliphy you are the release manager for this.

cms-bot commands are listed here

@fwyzard
Copy link
Contributor

fwyzard commented Apr 5, 2022

@cmsbuild, please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Apr 5, 2022

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-ef83a2/23658/summary.html
COMMIT: 12a0524
CMSSW: CMSSW_12_4_X_2022-04-05-1100/slc7_amd64_gcc10
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/37309/23658/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • No significant changes to the logs found
  • Reco comparison results: 2 differences found in the comparisons
  • DQMHistoTests: Total files compared: 48
  • DQMHistoTests: Total histograms compared: 3593039
  • DQMHistoTests: Total failures: 8
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3593009
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 47 files compared)
  • Checked 200 log files, 45 edm output root files, 48 DQM output files
  • TriggerResults: no differences found

@fwyzard
Copy link
Contributor

fwyzard commented Apr 18, 2022

+heterogeneous

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @perrotta, @dpiparo, @qliphy (and backports should be raised in the release meeting by the corresponding L2)

@qliphy
Copy link
Contributor

qliphy commented Apr 18, 2022

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants