Hi François, > I finally managed to run ViennaCL with a Block-ILU0 pre-conditioner on > the CPU using OpenMP.
Since you mentioned that the diagonal matrix is causing the problem, I will look into it. > I use the code attached to this email for a matrix > that solves the "heat equation" on a 2D square. What puzzles me is that : > > - I get the best timing with nb_blocks = 1. I was expecting timing to go > down when the number of blocks increase because of room for parallelisation. this is almost certainly due to overheads in the setup stage: https://github.com/viennacl/viennacl-dev/issues/40 It will be fixed in the release later this month. Also note that while a block-ILU preconditioner will reduce the time spent per solver iteration, the total number of iterations may increase. FYI: The next release will bring a massively parallel ILU0 preconditioner [1]. I can point you to the feature branch in the developer repository on GitHub if you don't want to wait. > - During the construction of the ILU0 preconditionner I was expecting > the CPU to go to 100% with one block, 200% for 2 blocks, etc. I don’t > get that. It seems that the CPU goes up to 200% for a very short time > and then goes back to 100%. This behavior does not depend upon > nb_blocks. Is it expected? This is most likely because too much time is spent in the remaining sequential stages causing the overheads mentioned above. Best regards, Karli [1] http://www.cc.gatech.edu/~echow/pubs/parilu-sisc.pdf ------------------------------------------------------------------------------ _______________________________________________ ViennaCL-support mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/viennacl-support
