vermaseren / form

The FORM project for symbolic manipulation of very big expressions
GNU General Public License v3.0
982 stars 118 forks source link

Too long argument of sorted function, Workspace overflow and MaxTermSize #378

Open santiago-lpch opened 3 years ago

santiago-lpch commented 3 years ago

Dear FORM community,

I am trying to handle a fc-amp*.frm file, originally produced by FormCalc, purely with FORM.

The file in question appears to contain inadequate setup parameters. Upon calling form fc-amp*.frm, I obtain:

(1)Output should fit inside a single term. Increase MaxTermSize? Called from EndSort Called from InFunction

After increasing MaxTermSize up to a certain point, the size of the Workspace becomes a problem, and I obtain (for example):

Workspace overflow. 50000000 bytes is not enough

I can increase the Workspace, and after doing that, I again hit the wall with MaxTermSize at some point. After some back and forth, I finally get:

mod-fc-amp-4.frm Line 1 ==> No memory while allocating sort buffers

from which I deduced that I have gone too far, and that maybe my hardware is the limiting factor.

After browsing through the issues in this repository and taking a look at #369 , I tried using the formset.py script by @tueda. I commented out the setup header in my .frm file and ran in a directory containing the output of python3 formset.py -o. With this, I obtain yet another error message, namely:

Sorted function argument too long. Called from InFunction

I am a bit confused about these different outputs, and don't know if I simply do not have enough SWAP, as explained in #371, or if I am just using the wrong setup parameters. I also understand that my issue might be closely related to #292, but I was unfortunately unable to gain insight from that discussion.

In case it is relevant, I'd like to mention that I was able to successfully handle other .frm files produced by the same FormCalc script in the way I described above, but which correspond to a different (simpler) subset of diagrams of the process I am considering.

Thanks in advance.

tueda commented 3 years ago

Sorted function argument too long.

As far as I understand, this message also means your MaxTermSize is not enough. You have to increase MaxTermSize. Correspondingly, Workspace should be increased, too. (The formset.py script doesn't change MaxTermSize unless you specify it. The script automatically increases Workspace if MaxTermSize and Workspace are too unbalanced.)

It might be possible to rewrite the *.frm files generated by FormCalc in such a way that the Workspace consumption would be reduced (for example, reducing numbers of recursions in repeated substitutions), but probably it will be tough...

vermaseren commented 3 years ago

There is another possibility and that is that the buffers for the sorting of function arguments are not sufficient. This is treated in the 2020 course in the Form pages (nikhef.nl/~form http://nikhef.nl/~form). In lecture six a set of IBP’s is treated that keep running out of this space. It is explained there and what to do about it. If that does not help you should try to contact the author of FormCalc.

On 9 Mar 2021, at 05:47, Takahiro Ueda notifications@github.com wrote:

Sorted function argument too long.

As far as I understand, this message also means your MaxTermSize is not enough. You have to increase MaxTermSize. Correspondingly, Workspace should be increased, too. (The formset.py script doesn't change MaxTermSize unless you specify it. The script automatically increases Workspace if MaxTermSize and Workspace are too unbalanced.)

It might be possible to rewrite the *.frm files generated by FormCalc in such a way that the Workspace consumption would be reduced (for example, reducing numbers of recursions in repeated substitutions), but probably it will be tough...

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/vermaseren/form/issues/378#issuecomment-793385909, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABJPCEWJL4N7ZLLIYQXUS6DTCWR4ZANCNFSM4YZ6KRWA.

santiago-lpch commented 3 years ago

Dear @tueda and @vermaseren,

thank you very much for your help. I added MaxTermSize and Workspace values to the output of formset.py. Also, I gave some values to the Sub* setup variables as suggested in slide 44 of lecture six of the 2020 course. With this, FORM was able to produce an output, and it was not even slow.

Now, using the EditCode option of CalcFeynAmp, I am adding the adequate setup parameters that I found with standalone FORM to the*.frm files produced by FormCalc "on the fly". It seems like FORM runs correctly, but after a while the following error appears:

LinkObject::linkd: Unable to communicate with closed link LinkObject['/data/slopez/FeynArtsFormCalc/FormCalc/Linux-x86-64/ReadForm', 77, 1].
ok

Part::partd: Part specification $Failed[[1]] is longer than depth of object.

which does not happen for the exact same steps applied to a simpler diagram.

This seems like more of a Mathematica/FormCalc problem, so I will continue in that direction.