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

BH-gpu magnetostatics: multiple CPU support and refactoring #2719

Merged
merged 7 commits into from
Apr 13, 2019

Conversation

bogdan-tanygin
Copy link
Contributor

Fixes #2500
In general, this fix is important cause it allows a user to parallelize both CPU and GPU calculations: EOM integration and magnetostatics respectively.

Description of changes:

  • Correct dipole prefactor broadcasting among the nodes
  • New test dds-and-bh-gpu.py is running over 4 CPUs: a comparison between BH and DDS gpu calculations. A new test has been needed because we cannot use dds-cpu as a baseline cause it does not support multiple CPUs.
  • Some technical debt has been caught up here as well: smart pointers based BH, the AMD GPU skip cleanup, per node test seeding.

PR Checklist

  • Tests?
    • Interface
    • Core
  • Docs?

@codecov
Copy link

codecov bot commented Apr 12, 2019

Codecov Report

Merging #2719 into python will decrease coverage by <1%.
The diff coverage is 100%.

Impacted file tree graph

@@          Coverage Diff           @@
##           python   #2719   +/-   ##
======================================
- Coverage      79%     79%   -1%     
======================================
  Files         508     508           
  Lines       27050   27047    -3     
======================================
- Hits        21590   21587    -3     
  Misses       5460    5460
Impacted Files Coverage Δ
src/core/actor/DipolarBarnesHut.hpp 80% <ø> (ø) ⬆️
src/core/actor/DipolarBarnesHut.cpp 100% <100%> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2007aaa...21f4bb1. Read the comment docs.

@fweik
Copy link
Contributor

fweik commented Apr 13, 2019

bors r+

bors bot added a commit that referenced this pull request Apr 13, 2019
2719: BH-gpu magnetostatics: multiple CPU support and refactoring r=fweik a=psci2195

Fixes #2500
In general, this fix is important cause it allows a user to parallelize both CPU and GPU calculations: EOM integration and magnetostatics respectively.

Description of changes:
 - Correct dipole prefactor broadcasting among the nodes
 - New test dds-and-bh-gpu.py is running over 4 CPUs: a comparison between BH and DDS gpu calculations. A new test has been needed because we cannot use dds-cpu as a baseline cause it does not support multiple CPUs. 
- Some technical debt has been caught up here as well: smart pointers based BH, the AMD GPU skip cleanup, per node test seeding. 

PR Checklist
------------
 - [ ] Tests?
   - [ ] Interface
   - [ ] Core 
 - [ ] Docs?


Co-authored-by: Bogdan Tanygin <b.m.tanygin@gmail.com>
Co-authored-by: Brian Tanygin <b.m.tanygin@gmail.com>
@bors
Copy link
Contributor

bors bot commented Apr 13, 2019

Build failed

@fweik
Copy link
Contributor

fweik commented Apr 13, 2019

bors retry

bors bot added a commit that referenced this pull request Apr 13, 2019
2719: BH-gpu magnetostatics: multiple CPU support and refactoring r=fweik a=psci2195

Fixes #2500
In general, this fix is important cause it allows a user to parallelize both CPU and GPU calculations: EOM integration and magnetostatics respectively.

Description of changes:
 - Correct dipole prefactor broadcasting among the nodes
 - New test dds-and-bh-gpu.py is running over 4 CPUs: a comparison between BH and DDS gpu calculations. A new test has been needed because we cannot use dds-cpu as a baseline cause it does not support multiple CPUs. 
- Some technical debt has been caught up here as well: smart pointers based BH, the AMD GPU skip cleanup, per node test seeding. 

PR Checklist
------------
 - [ ] Tests?
   - [ ] Interface
   - [ ] Core 
 - [ ] Docs?


Co-authored-by: Bogdan Tanygin <b.m.tanygin@gmail.com>
Co-authored-by: Brian Tanygin <b.m.tanygin@gmail.com>
@bors
Copy link
Contributor

bors bot commented Apr 13, 2019

Build succeeded

@bors bors bot merged commit 21f4bb1 into espressomd:python Apr 13, 2019
@bogdan-tanygin bogdan-tanygin deleted the bh-mult-cpu-and-refact branch April 14, 2019 20:37
RudolfWeeber pushed a commit to RudolfWeeber/espresso that referenced this pull request Apr 23, 2019
2719: BH-gpu magnetostatics: multiple CPU support and refactoring r=fweik a=psci2195

Fixes espressomd#2500
In general, this fix is important cause it allows a user to parallelize both CPU and GPU calculations: EOM integration and magnetostatics respectively.

Description of changes:
 - Correct dipole prefactor broadcasting among the nodes
 - New test dds-and-bh-gpu.py is running over 4 CPUs: a comparison between BH and DDS gpu calculations. A new test has been needed because we cannot use dds-cpu as a baseline cause it does not support multiple CPUs.
- Some technical debt has been caught up here as well: smart pointers based BH, the AMD GPU skip cleanup, per node test seeding.

PR Checklist
------------
 - [ ] Tests?
   - [ ] Interface
   - [ ] Core
 - [ ] Docs?

Co-authored-by: Bogdan Tanygin <b.m.tanygin@gmail.com>
Co-authored-by: Brian Tanygin <b.m.tanygin@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

DipolarBarnesHut does not work with multiple cores
2 participants