Exec error : exec assert

I guess you need to build your own .tar.gz by using the same Dockerfile but with modifying the file macro_ddm.idp.

Dear @prj ,

Do you have other solutions? I realise this issue may also cause instability of my algorithm, which I observed a lot and really have no idea.

My sequetial code works well, and my parallel code agrees perfectly with the sequential one at the first few steps, but the parallel code breaks down after some unpredicted steps, and it breaks down differently using diffetent processors.

The problem is I am not quite familiar with docker, if you have an easier solution, it would be really appreciated.

Best,
Yongxing.

This is a trivial solution (just modifying a single file), but you are using a complicated tool (Singularity container), so I can’t be of much more assistance here…

OK, let me try to learn how to use docker. You know, your Mattransfer( ) in FreeFem provides the interpolation matrix which is a perfect tool to implement my algorithm in parallel. I have not seen other sofwares which provide this function, are there some you can suggest?

Almost all standard finite element codes implement such a function.

Dear @prj ,

I am back for further help…
I have fixed my singularity container with the modification of file macro_ddm.idp, as you suggested, which did not work correctly unfortunately.

problem 1: for the simple working example test.edp (988 Bytes). Your know, previously when using 8 processors, there was an error at line 1484, which disappeared if using -Dpartitioner=scotch. Now applying your modification of file macro_ddm.idp, it is funny: there is no error without -Dpartitioner=scotch, but there is an error at line 1487 with it – NOT line 1484 but it is the same error as shown in the following screenshot.

Problem 2: for my long/real script, the error at line 1487 quickly appears no matter using -Dpartitioner=scotch or not. Three errors for three tests are all the same which are shown as follows:

image

I’m not sure you applied the patch properly. On my machine, with the patch, for test.edp with the previously supplied meshes, the script runs to completion with -np 8 with or without -Dpartitioner=scotch. Or maybe you need to switch to the develop branch instead of using version 4.9? Nevermind, I’m seeing that it also sometimes fail on my machine. I have another fix in the pipeline but I have a busy beginning of week. I will send it to you by Wednesday (but hopefully sooner if I catch a break). Sorry for this.

1 Like

Could you please try the following patch instead?

diff --git a/idp/macro_ddm.idp b/idp/macro_ddm.idp
index ea8c0861..66c1e27e 100644
--- a/idp/macro_ddm.idp
+++ b/idp/macro_ddm.idp
@@ -1745,2 +1745,3 @@ ENDIFMACRO
     meshN interpolateExchange;
+    fespace PhExchangePrivate(gluedExchange, P0);
     fespace VhExchangePrivate(gluedExchange, Pk);
@@ -1751,4 +1752,4 @@ ENDIFMACRO
             if(recvTh[index].nt) {
-                fespace VhRestrictionPrivate(recvTh[index], Pk);
-                matrix R = interpolate(VhRestrictionPrivate, VhExchangePrivate);
+                fespace PhRestrictionPrivate(recvTh[index], P0);
+                matrix R = interpolate(PhRestrictionPrivate, PhExchangePrivate);
                 if(R.nnz != R.n) {
@@ -1757,3 +1758,8 @@ ENDIFMACRO
                 }
-                for[i, j, v : R] uExchange[][j] += exchangeU[index][i];
+                int[int] I, J;
+                real[int] C;
+                [I, J, C] = R;
+                fespace VhRestrictionPrivate(recvTh[index], Pk);
+                int[int] restriction = restrict(VhRestrictionPrivate, VhExchangePrivate, J);
+                for[i, v : restriction] uExchange[][v] += exchangeU[index][i];
             }

thank you very much @prj , i will try it soon and will let you know the result.

Please do that as soon as you can. There will be a new FreeFEM release by the end of this week, so if the patch works OK for you, I’ll include that in the develop branch which will become version 4.10. Then, you won’t have to play around with Docker patches.

1 Like

@prj : I have NOT seen the same error for all the tests using P1b/P1 element, I will update to you later for the test using P2/P1 and P2/P1dc elements.

That’s promising, thanks! Waiting for your later update to merge this in and release 4.10. BTW, you do get correct results, right? :smiley:

Yes, my results are correct. Thank you very much!

I can confirm that there is no error for my other four tests in both 2D and 3D (previously showed the exec assert error at line 1487). Thanks again for all your help!