Comments (16)
That's fine with me if you want to have a go at this.
from atlas.
Oh, and you have one hour! :-)
from atlas.
Really, I don't have a good idea yet of how long that could take.
from atlas.
HI Marek, You're welcome to give that a go.
There's no concept of structured data in the HaloExchange
class though. The basic procedure for current halo-exchange is:
setup(...)
(called only once) --> create a sendmap and a recvmap, which hold indices that need to be added to respectively the mpi-send and mpi-recv buffers- 'execute(field)'
- 'pack-send-buffers' (use sendmap)
- all-to-all ( instead using isend and irecv, wait )
- 'unpack-recv-buffers`
It may be a little confusing because the packing and unpacking of the send- and recv- buffers has 2 implementations depending on availability of CUDA. You can ignore the CUDA implementation, and we can worry about that later.
from atlas.
Thanks @wdeconinck @ytremolet. Realistically, I will be able to start on Monday as there a few thing other things I need to tie up first.
from atlas.
Hi. I think it would be easier for me to work initially from the JCSDA forked version of atlas. @wdeconinck - is that o.k?
from atlas.
Yes. It is not allowed to create branches in the ecmwf/atlas repo, only create branches in a fork and submit a PR. This fork could be any fork, such as the jcsda fork.
from atlas.
Thanks!
from atlas.
@ytremolet @wdeconinck - Just an update ... I have got it to work (without CUDA) and am halfway through building the tests ... I should have a PR ready sometime tomorrow. What are the governance rules for PRs?
I presume that someone from ECMWF will need to be requested to review for each PR. Or is there going to be a two step process, with an internal JCSDA review followed by a ECMWF review (when JCSDA atlas repo gets updated / merged / realigned with the main ECMWF repo?
from atlas.
Any PR should be submitted to the ecmwf repo, and branching off the atlas develop branch. I will then assign reviewers. Currently that would be myself.
Make sure to have a unit-test that tests your functionality. I will do an internal test to see if the code works across all platforms we use, including Cray XC40.
from atlas.
I have a bit a problem ... I worked off the develop-jcsda branch of the JCSDA atlas fork, because it was significantly more up to date than the forked atlas develop. Comparing my change with the atlas develop shows up Benjamin's changes to PointCloud class. I don't think the JCSDA's forked version of atlas develop can be updated to the latest version without updates to other repos, @benjaminmenetrier am I right? Do I need to wait until JCSDA switches to using develop-jcsda?
I am not sure whether I can run the ecmwf's develop on JCSDA's estate.
Also I don't know where to get the appropriate version of gridtools so that I can check whether I have coded that part correctly.
from atlas.
@MarekWlasak At this point you have two options:
- You can issue your pull request to the develop-jcsda branch on the ecmwf github. It should be the same as the one on the jcsda github so all you have to do is change the target in your PR and that's where Willem can do reviews. However, that branch is something where we merged intermediate developments and it's not fully working so your code changes won't get into develop until we have finished our other developments.
- Or you transfer all your changes on top of develop on the ecmwf repo and do a PR there. It's more work but your changes will be in develop faster.
It's up to you which route you prefer (unless Willem has other comments), but in any case, the PR should be on the ecmwf repo.
@wdeconinck This is an example where I could help with the review if we could add me as a reviewer. This is really for DA applications so I like to keep on top of what is available to us and I have been writing adjoints for many years which can be useful (although Marek has that experience as well).
from atlas.
Hi @MarekWlasak If you create the PR, I can try myself to get the gridtools-backend working, as long as you have a unit-test I can use. When you do create the PR, you can click a checkbox that allows me to edit your branch directly.
As @ytremolet said, the develop-jcsda branch is of temporary nature, and is currently broken. It should not be considered.
from atlas.
Hi @wdeconinck. Thanks for the offer on running the gridtools-backend. I have almost finished the unit-tests. There will be twice the number that you have for the normal halo exchange and they are taking longer to write than the original code.
I started my code branching from JCSDA's develop-jcsda branch. Once I finish these tests, I plan to copy the code into a new branch that is based around the latest ecmwf's atlas develop. I am not sure whether I will be able to run my tests with it though. Do I need the latest versions of eckit and fckit?
from atlas.
I have completed the adjoint tests, barring the ones involving gridtools.
I could create a temporary PR with the develop-jcsda branch so that you can see what I have been up to. Would that be of use while I look and see while I can get a branch based on ecmwf atlas develop version to run?
from atlas.
Wow! That was not as hard as I expected it to be. #16 is the associated PR.
from atlas.
Related Issues (20)
- Failure to find intersects of points on corners/edges of irregular quad. HOT 1
- Support limited area grids in StructuredColumns linear interpolation
- Bugs in cubed sphere implementation.
- How to parallelly read and write grib file using atlas HOT 1
- Add (lon, lat) to (alpha, beta) transforms to cubed sphere projection HOT 1
- Generate remote-index and partition fields for PointCloud halo exchange. HOT 1
- Compile failures with old Intel compiler HOT 2
- The Fortran interface of StructuredColumns lacks a binding to gather/scatter fieldsets
- The projection class lacks a jacobian method HOT 1
- Creating a distribution for a 40000x20000 latlon grid is too expensive
- The class atlas::vector lacks a copy constructor and an assignment operator HOT 1
- Fortran interface for distribution object lacks a nbpts method
- Supporting a stretched rotated limited area grid. HOT 4
- Allow datatype to be set by string and not by int from the configuration.
- Allow atlas-run to use something other than srun HOT 2
- atlas_fctest_grids failure HOT 2
- Determine grid resolution specific parts in cubed-sphere grid from attributes and remove xyt space
- fatal error: atlas/library.h: No such file or directory and failed cmake run. HOT 2
- Stopping the interpolation of missing values during finite-element interpolation HOT 7
- Add option to reduce fraction of grid points checked when finite element interpolation fails
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from atlas.