That's great to hear. I would really like to address the learning curve for being able to write efficient Julia code, both by removing some of the performance gotchas and by providing better feedback – like Tim Holy's PR <https://github.com/JuliaLang/julia/pull/9349> for highlighting type issues.
On Tue, Dec 16, 2014 at 11:52 AM, Petr Krysl <[email protected]> wrote: > I have made some progress in my effort to gain insight into Julia > performance in finite element solvers. > > I have compared my solver, J FinEALE, (compute and assemble global FE > matrices and vectors, then solve the sparse system with Julia's sparse > matrix facilities) with the commercial FEA software Comsol 4.4. > > If anyone is interested, I could document this in a more comprehensive > fashion, possibly with the paper. But here goes a real quick rundown: > > Heat conduction, nonzero essential boundary conditions, nonzero internal > heat generation rate. > Mesh of 2 million linear triangles. 1,000,000 degrees of freedom. > The mesh generation and kickoff of the simulation (assignment of boundary > conditions and such) is done by the solver in a separate step, so that is > not counted towards the total time spent computing in J FinEALE either. > > J FinEALE: 20.6 seconds > Comsol 4.4 w/ PARDISO: 16 seconds > Comsol 4.4 w/ MUMPS: 22 seconds > Comsol 4.4 w/ SPOOLES: 37 seconds > > Just for contrast: > Matlab FinEALE: 810 seconds. > > What I found particularly interesting was what it took to reduce the > time for this solution from the initial rewrite from Matlab (around 86 > seconds) to the present performance: identify features that degrade > performance (declare types!), code critical bottlenecks with ad hoc > functions. The critical feature of Julia that made this possible was the > speed with which it can execute loops written entirely in Julia. There > is no need to call outside help (ala mex-files, which by the way would be > of no help in this case). > > Briefly, Julia DELIVERS! Bravo to the development team. > > Petr > > >
