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