Giter Club home page Giter Club logo

Comments (4)

Keou0007 avatar Keou0007 commented on June 2, 2024

I don't have a good understanding of how embree works under the hood, but I don't believe it uses MPI.
Some questions that come to mind:

  • Is there a good reason why you need to be running this ray trace code using MPI? I assume the example is concocted, since it really doesn't have any reason to be run with MPI.
  • The code appears to work, and the warning is indeed just a warning. Can you just turn that warning off as it suggests?

from pyvista.

natsuwater avatar natsuwater commented on June 2, 2024

A little more explanation:

  • Ray tracing itself does not need to be running under MPI, as you correctly pointed out.
    However, other parts of the simulation code Iā€™m building are time-consuming, and Iā€™m trying to apply MPI to those parts.

  • The calculation results after this warning were quite different from the non-MPI single process calculation.

from pyvista.

Keou0007 avatar Keou0007 commented on June 2, 2024

Ok, so if the calculation is wrong then I can only assume the warning is for a good reason and you're getting memory corruption/errors/something. I've seen warnings like this before when using multiprocessing code across both Linux and macOS (which spawn subprocesses in different ways), and the ultimate solution was for me to write my code differently. Unfortunately sometimes different libraries don't play well together and there's not much you can do about that.

I don't really know anything about mpi4py, but here's some fumbly suggestions for you if you're feeling out of options:

  • Play around with some test code and try and isolate exactly which part of your code is throwing the error.
  • If the error is caused by embree (and if you don't actually have to do a lot of ray traces, so performance isn't an issue) then you could try doing the same thing with the VTK single ray trace function (available via pyvista), or even the rtree based ray tracing in trimesh.
  • See if you can avoid the fork(), which may not be possible if you're stuck running via mpirun.
  • Try and seperate what you're doing so the ray tracing can be run seperately from the MPI component.
  • You say you're code is time consuming and so you're trying to apply MPI. Without knowing anything about what you're doing, I can only suggest to avoid MPI if you're not decomposing your problem in a way that specifically requires interprocess communication. Is there a different way you could speed up your code?

From what you've said, it seems to me like the error exists either in your code or in one of the dependencies, and there's probably nothing that can be changed in pyvista to fix it. Since you only seem to be able to reproduce it on an EOL OS on an old HPC, then I'm not convinced it would be worth the effort to try and fix anyway. Either way my opinion is this issue should probably be closed.

I'm happy for you to email me if you'd like to discuss your code a bit more specifically, can't promise I will be able to help though.

from pyvista.

natsuwater avatar natsuwater commented on June 2, 2024

I agree that it would be not worth the effort to fix and this issue should be closed.

I really thank you for your time and consideration.

from pyvista.

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.