Giter Site home page Giter Site logo

Comments (3)

JWock82 avatar JWock82 commented on June 2, 2024 1

This is an interesting idea. I briefly looked into multiprocessing about a year ago. I think it's possible, but a lot of work. Right now the program is pretty fast for most of the models I do. I could see the utility of multiprocessing for very large models with lots of nodes.

I haven't run a profiler on the code since I added physical members, but the slowest part of the code used to be the assembly of the global stiffness matrix. Multiprocessing that would be difficult, since the total matrix is the sum of the member matrices, and you can only add one member matrix at a time to the global matrix. All the matrix operations have to get in a single file line. I suppose you could have multiple global matrices at a time being created, and then add them together at the end in a few operations. I'm sure there's a way to do it. It seems like we'd lose a lot of the simplicity the code currently has, but maybe that's necessary if we ever want to efficiently solve really big models with tens of thousands of nodes.

I wouldn't be surprised if descretizing physical members lagged on large models, since each node in the model is checked against each physical member in the model to determine if it lands on that member. I think there's a better way to do this that doesn't require revisiting every node on every member, but for now it gets the job done.

There is definitely room for improving these algorithms to be more efficient. Some of them were put together to just get the job done right, without much thought of efficiency. I am a structural engineer, rather than a programmer. Adding multiprocessing is a matter of profiling the code on a large model to find the choke points, and then figuring out how to feed those processes to multiple cores.

from pynite.

bewegende-Architektur avatar bewegende-Architektur commented on June 2, 2024

Ok. I can answer the question: Members and phys_member would need to be also of type manager.dict()
Guess this is a huge amount of work. I will do another quick test ...

from pynite.

bewegende-Architektur avatar bewegende-Architektur commented on June 2, 2024

Thanks for your quick reply! Totally agree. I was just wondering, if there is an easy approach.
Greetings,
Chris

from pynite.

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.