Code Monkey home page Code Monkey logo

Comments (3)

solomonik avatar solomonik commented on June 30, 2024

Hi, that seems like a very interesting application.

I reproduced a segmentation fault when running your code. However, it happened earlier, the symmetries for the matrices were specified incorrectly. Also, one of the loops that defines the initial tensor data is wrong. After fixing these, the code executed, but CTF computed extremely high order intermediates to evaluate the expression (like order 14, all sums were being done at the end). CTF is currently not smart at picking the right `factorizaton' (order of contraction evaluations), when doing ABCD... (Factorization is a hard problem in general, some solutions exist, like TCE). Applications are currently expected to do this manually, e.g. AB =AB; ABC = ABC; etc. I made a pull request to your code, correcting the bugs, and adding a manual factorization to compare with. I also reworked the tensor intermediate definition within CTF, so it should work for cases like this better (with v1.34 it should not compute any intermediate of order higher than 6 for that expression). However, the factorization approach used still has no quality guarantees for factorizations in general (if you reorder the tensors in the contraction chain in your code, CTF may again get confused and compute intermediates of high order). Compile CTF with -DVERBOSE to see what contractions it actually computes. There are plans to improve CTF factorization functionality further in the future.

from ctf.

kostrzewa avatar kostrzewa commented on June 30, 2024

Hi, my apologies for taking so long to get back to you. Thanks a lot for fixing my test case!

This test was very interesting for us because the complexity of our contractions is steadily increasing. I will have to study a bit more how to sensibly fill the tensor objects with data, but the time per contraction is quite impressive, given the generality of ctf.

The way I wrote the contraction was a bit of an extreme case to see just how long this kind of thing would take. In practice, we would also order the contraction by hand, as you did for my test case.

We will try this out with actual examples over the coming months and I'll try to keep you informed. If we find that ctf is just what we need and continue to use it, do we cite the three papers mentioned on the website or is there a specific one which you would like to see cited in this context?

from ctf.

solomonik avatar solomonik commented on June 30, 2024

Just citing the JPDC paper is appreciated, feel free to post more questions/feedback.

from ctf.

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.