GithubHelp home page GithubHelp logo

Comments (2)

fankiat avatar fankiat commented on July 28, 2024

Some note for my future reference: A better way of doing this is probably to derive a MPIO (multi-process I/O) class from the IO class which is already available in sopht-simulator (previously sopht-backend). This way we retain xdmf generation features, and achieve the same metadata structure of the generated hdf5 file, thus assuring consistency with the current working code style in sopht-simulator. I have a rough idea how to do this and will look into this once the MPI-supported 3D kernels and/or simulator are in place.

from sopht-mpi.

fankiat avatar fankiat commented on July 28, 2024

Some note for my future reference: A better way of doing this is probably to derive a MPIO (multi-process I/O) class from the IO class which is already available in sopht-simulator (previously sopht-backend). This way we retain xdmf generation features, and achieve the same metadata structure of the generated hdf5 file, thus assuring consistency with the current working code style in sopht-simulator. I have a rough idea how to do this and will look into this once the MPI-supported 3D kernels and/or simulator are in place.

After a more in-depth and careful look, I realize that while a lot of the code in sopht.utils.IO can be reused (with regards to the metadata structure and data organization), there are more subtle changes when it comes to actually performing the write operation in an MPI context. One of the few things is for example, each MPI process carries local domain data, which is a chunk of the entire global array. This means that when writing, the operation needs to be offset accordingly. There are several more issues that are somewhat minor and could be fixed with minor tweaking like generating xdmf file should probably be done by a master_rank and so on. All of these minor changes, while do not affect or change the workflow or pipeline of the IO module, push to me think that we need to instead just rewrite a new module called MPIIO which addresses accordingly all these minor issues, including the ones mentioned above.

In the next few days, I will be writing this new module as well as tests to make sure they work as expected.

from sopht-mpi.

Related Issues (20)

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.