Hi Damian --

As a quick response: I think you're right that the ultimate goal with Chapel is to author libraries in Chapel itself to take advantage of its productivity features as well as its native support for expressing parallelism and locality. The primary reason we have not done so to date is simply one of resourcing. There are only a small number of developers who are able to improve the Chapel language, compiler, and runtime, and most of them work for us, so if we don't do those improvements, it's likely nobody will. Meanwhile, there are a much larger number of people who could write a numerical library and do smart things in it, so this is work that could ostensibly be done by people outside of our team (and many of our existing libraries have been contributed by non-Cray developers). Meanwhile, people have wanted access to existing standard libraries, and it's been fairly easy (relatively speaking) for existing libraries to be wrapped to keep them happy in the meantime.

I think that you're correctly anticipating that the LinearAlgebra module ought to be a place where such native routines start to appear—and I believe that a few have already been written natively in Chapel, though many (most?) of them are currently simply sugaring over BLAS/LAPACK capabilities. (and, hopefully over time, native libraries will appear covering other domains beyond linear algebra).

Needless to say, in the course of your [interns] efforts, if you design / construct a library or library routines that would be useful to contribute back to the community, we'd be happy to see that happen. And if you see needs or deficits that you think we ought to address, please file GitHub issues for them.

Those are my quick thoughts on this topic anyway,
-Brad


On Tue, 11 Dec 2018, Damian McGuckin wrote:


Hi everyone,

Just trying to deduce a plan to attack a problem of mine, the basis of which is a tiny project to be done by young slave/intern doing a singular value decomposition (SVD) routine in Chapel. Nothing special, it is primary targetted at small matrices, those that define the relationship between stress and strain. This means that numerical issues with SVD and large matrices are less critical.

With respect to advanced linear algebra libraries available for use within one's own code, Chapel has several options.

Both BLAS and LAPACK are wrappers around ??? and LAPACK respectively. This is great if you just want to exploit such a library. But wrappers make the retrofitting of advances in low level routines such as Edward Anderson's (2018 ACM TOMS) improved vector norm a non-trivial task.

The Jama port to Chapel is simple but not very extensive.

I have not gone too deeply into the LinearAlbegra project - yet. Maybe next week.

From a philsophical standard, as opposed to the practicality of getting a program going, isn't Chapel the sort of language that one would want to use to write such libraries? In doing so, you might want to look at what is being done in PLASMA.

        https://bitbucket.org/icl/plasma

See also the work on LAPACK's cousin??, PLASMA which is a software package for solving problems in dense linear algebra using multicore processors & Xeon Phi coprocessors. PLASMA provides implementations of state-of-the-art algorithms using cutting-edge task scheduling techniques. PLASMA currently offers a collection of routines for solving linear systems of equations, least squares problems, eigenvalue problems, and singular value problems. PLASMA is in the process of porting form QUARK to OpenMP. I would have thought that PLASMA written in Chapel would have been an interesting comparison to this almost (??) complete alternative in OpenMP.

Regards - Damian

Pacific Engineering Systems International, 277-279 Broadway, Glebe NSW 2037
Ph:+61-2-8571-0847 .. Fx:+61-2-9692-9623 | unsolicited email not wanted here
Views & opinions here are mine and not those of any past or present employer


_______________________________________________
Chapel-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-developers
_______________________________________________
Chapel-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-developers

Reply via email to