- ...modify
- Of course, one cannot truthfully
say that today's applications are any smaller, but they are at least
supposed to be better documented.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...changed
- This applies
only to the parts of the code that directly use SymPLA. If other
parts of the application are dependent on some specific architecture
or compiler, this can only be handled by the developer.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...value
- since C++ does not have a read-only attribute for
public variables, nor does any other language known to us.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...C++
- Doing so
would require a major change in the syntax and the grammatical rules
of the C++ language, as Pascal uses explicit declaration of procedures
and functions while C++ uses a name followed by a parenthesis. A
possible solution could be letting the function defined as int
dim(void) be called as both dim() and dim.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...submatrix
- Present implementations can only be
restricted to this, but another method of implementation may expand
this to all affected submatrices.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...matrices
- Neither the TriangularSolver
class nor the LUsolver class presently supports any kind of
multiplication, except when they are implicitly converted to
Matrix.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...files
- The present
implementation is restricted to text files.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...data
- Of course, the ``constness'' problems
do not end here, as LAPACK routines do not have enforcement of const,
and typecasting away the const may be necessary.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...frontend
- While it may be possible
to configure the cfront to produce code that runs on the ACU, there
might be problems with the MPL's parallel features. It is likely that
separate code in MPL would have been required in any event. In
addition, the frontend computer is a much faster sequential computer
than the ACU, and has better resources available.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...data
- This might be omitted, or
replaced by assertions, but is used in this prototype.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...benchmarks
- Timings of daxpy
operations on DEC Alpha and Intel Paragon cannot differentiate between
a scaling factor of 1.0 or a scaling factor different from
1.0. This may be because the daxpy always uses a scaled sum,
or that scaling has no effect on time to compute.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...operations
- The correct operation count for MasPar
would be 50#50 for SymPLA, as MPML only has a
complete solver, not triangular solvers like BLAS does. The count is
set to the same for both, otherwise the SymPLA benchmark will have to
handle MasPar as a special case.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...MFLOPS
- In the addition
benchmarks, one FLOP is one addition.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...computer
- This would
most likely also be true if the application is ported to a SPMD
environment similar the one ScaLAPACK uses, although some problems
with vectors may emerge.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...architecture
- Function evaluation is an exception, but even
this feature may be kept independent of architecture (but
inefficient). Yet, one still has the option to use architecture
dependent features.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.