Home My Page Projects PaStiX
Summary Activity Forums Lists Docs News Files

Forum: open-discussion

Monitor Forum | Start New Thread Start New Thread
RE: Possible to solve system Lx=b? [ Reply ]
By: Nobody on 2015-06-23 15:53
[forum:149652]
Hello,

That fixed it, thank you very much for your efforts. At this point I have no other issues with the forward and backward solves, but please let me know if you develop another fix that gets at the root of the problem.

Thanks,
Darin

RE: Possible to solve system Lx=b? [ Reply ]
By: Théophile Terraz on 2015-06-23 07:24
[forum:149649]
Hello,

I did reproduce your problem.
I don't know why yet, but you can fix it by adding this line in your config.in:
CCPASTIX := $(CCPASTIX) -DMULT_SMX
Please tell me if it works for you.
This option just replace some gemv by gemm and some trsv by trsm in the solve step. I don't understand why it fixes the issue, I still investigate to find the real problem.

Best regards,

Théophile

RE: Possible to solve system Lx=b? [ Reply ]
By: Nobody on 2015-06-15 18:20
[forum:149641]

config.in (5) downloads
Here is the config.in file.

RE: Possible to solve system Lx=b? [ Reply ]
By: Théophile Terraz on 2015-06-12 15:52
[forum:149638]
Hello

I am not able to reproduce your issue.
Could you send me your config.in file please ?

Thanks,

Théophile

RE: Possible to solve system Lx=b? [ Reply ]
By: Nobody on 2015-06-08 18:17
[forum:149630]
Hello again,

The update fixed the segfault, and it works when running a really small copy of the laplacian example. However for larger examples it appears that another issue pops up. If I try running a modified version of the step-by-step_dist example with a 100x100 laplacian matrix with 4 MPI processes, all of the matrix seems to be distributed to one process and the outputs look correct. A forward solve followed by a backward solve produces a vector of ones as a result. For larger problems (dimension still as small as 200-300), the matrix gets distributed across multiple processes and the result comes out jumbled. Some of the solution correctly returns as all ones, but a lot of the values are between zero and one. I didn't dig into it too much, but it looks to me like one process returns the correct result and the other processes have some error.

I tried running the forward_backward example with the same size laplacian matrix and got the same issue, some of the result is correct, but a substantial part isn't. If it helps at all, it looks to me like the forward solve executes correctly and the backward solve produces the error. I've also attached a copy of the modified step-by-step_dist file, but as I said I obtained the same errors by just using the forward_backward file without any modifications.

Thanks,
Darin

RE: Possible to solve system Lx=b? [ Reply ]
By: Théophile Terraz on 2015-06-01 14:50
[forum:149603]

pastix_release_50c5ad0.tar.bz2 (14) downloads
Hello,

I think the bug was the same than previously, I just didn't try it with a distributed matrix.

I fixed it in this release. If your broblem remains, don't hesitate to show me your modifications in the examples.

Regards,

Théophile

RE: Possible to solve system Lx=b? [ Reply ]
By: Nobody on 2015-05-29 20:45
[forum:149602]
Hello again,

I apologize for not replying sooner, but it does appear that the forward and backward solves are working correctly for me now. However, they only work when pastix is called with a global matrix as is the case in the examples, I keep getting segfaults if I try to call it with a distributed matrix. At first I thought this might have been my own issue in how I was calling pastix, but I tried changing the step-by-step_dist example to do the forward and backward solves separately, and this created a segfault as well.

Is there any reason this should work differently if the matrix is distributed? With the step-by-step example, I just modified it to run the solve step (step 5.1 in the example) in pastix twice, first the forward and then the backward solve, and this was enough to produce the segfault. It seems to me that this should work, but if there is some underlying factor that would prevent it, please let me know.

I feel like I should also mention that the segfault only occurs in the forward solve. If I run just the backward solve, everything appears to work correctly.

Thanks,
Darin

RE: Possible to solve system Lx=b? [ Reply ]
By: Théophile Terraz on 2015-04-24 15:27
[forum:149522]

pastix_release_da8ca85.tar.bz2 (8) downloads
Hello,

It was my mistake, the vector returned at the end of the forward solve was given in the internal numbering.
Here is a release which fix this bug. Let me know if you have any other issue with it.
Thanks again for your feedbacks, they are realy helpfull.

Regards,

Théophile

RE: Possible to solve system Lx=b? [ Reply ]
By: Nobody on 2015-04-23 14:18
[forum:149521]
Hello,

I hate to be a nuisance, but I just ran the example problems again and still got the same issue to pop up. Namely, the forward solve gives a bad result, but the ensuing backward solve fixes it when scotch ordering is used. As before, circumventing the ordering step prevents the issue. I should also mention that the backward solve on its own appears to work regardless of the ordering. Are there any other parameters that need to be set, or is this still a bug within pastix?

Thanks,
Darin

RE: Possible to solve system Lx=b? [ Reply ]
By: Théophile Terraz on 2015-04-14 08:52
[forum:149491]

pastix_release_b7cc874.tar.bz2 (9) downloads
Hello

Here is a new PaStiX version.

the problem was caused by a remaining permutation at the end of the forward solve and at the begining of the backward solve. This problem is now fixed, and the forward_backward example can now run without skipping the ordering step.

Thanks for your feedback.

Regards,
Théophile

RE: Possible to solve system Lx=b? [ Reply ]
By: Nobody on 2015-04-09 16:58
[forum:149476]
Thanks for the update. I've tried recompiling the new library and solving the forward and backward problems individually. However, the forward solution only seems to give the correct result when the permutation vector is set to not reorder the matrix at all (as is the case in the forward_backward example). For example, if the ordering is set to scotch ordering (as is the case in the forward_only), the forward solution is incorrect. Despite the bad result for the forward solve the ensuing backward solve appears to still produce the correct result.

Is it possible I'm overlooking something? To verify that it wasn't some small typo in the code, I used the laplacian example in both the forward_backward and forward_only cases and the results are either identically correct or incorrect, depending on the ordering used. Any feedback on this issue would be appreciated.

Thanks,
Darin

RE: Possible to solve system Lx=b? [ Reply ]
By: Pierre Ramet on 2015-04-03 09:34
[forum:149456]

pastix_release_4317154.tar.bz2 (14) downloads
The archive of PaStiX including the patch from Theophile.
Regards,
Pierre.

RE: Possible to solve system Lx=b? [ Reply ]
By: Théophile Terraz on 2015-04-02 15:27
[forum:149453]
Hello,

Here is a release of Pastix with the possibility to solve Lx = b or L'x=b.
The parameter iparm[IPARM_TRANSPOSE_SOLVE] can now be set to API_SOLVE_FORWARD_ONLY or API_SOLVE_BACKWARD_ONLY.
Two examples are available to show how to use his feature: forward_only.c and backward_only.c.

Don't hesitate to give us your feed-back.

Regards,

Théophile

RE: Possible to solve system Lx=b? [ Reply ]
By: Théophile Terraz on 2015-03-30 15:16
[forum:149440]
Hello

This option is not available in Pastix yet, but it seems to be useful to many users.
We will have a look at that and provide a patch in the comming weeks.


Regards,

Théophile

Possible to solve system Lx=b? [ Reply ]
By: Nobody on 2015-03-27 17:16
[forum:149437]
I was wondering if it is possible when a matrix is factored into the form LL' to solve the system Lx = b (or L'x=b) as opposed to LL'x = b. I'm trying to use the Pastix solver to help solve a generalized eigenvalue problem and solving a system with only the lower triangle makes for a more efficient setup than solving the entire system. I would imagine that the numerical solve step does this internally anyway, but I haven't seen any method to access it directly.

Thanks for any help you can offer.