Skip to content
Philip Lykke Carlsen edited this page Oct 24, 2012 · 2 revisions

Project Health

How good is the project health? That is, we want to determine how likely is it that development on the language will continue and that it will keep getting funding and interest from developers.

Subquestions include:

  • Quality of documentation

    Extensive documentation. Lots of examples and tutorials.

  • Code review

  • Portability

    Only Nvidia graphics cards with certain minimum "compute capability", i.e. specific features of the hardware at hand may be exploited directly in the code, thus depending on the hardware having at least those features. (TODO: Compute Capability is identified by a version number, thus backwards compatibility appears conserved, but is it actually?)

  • Installation process

    Delivered as self-contained binary SDKs. Only integration with development environment may be tricky (environment variables for linking etc.)

  • Number of dependencies (incl. GHC extensions)

    Self-contained in software, but requires the actual hardware to develop.

  • Number of users (reverse dependencies)

    Counting is intractable. Very widely in use.

  • Number of contributors

    Unknown/NA. Maintained exclusively by NVidia

  • How easy is it to start contributing?

    Unknown/NA. Maintained exclusively by NVidia

  • Latest project activity (e.g. which version of GHC does it compile on?)

    Actively maintained.

  • Licensing

    AllRightsReserved?

  • Funding

    Unknown/NA. Maintained exclusively by NVidia

Ease of use and expressiveness

How easy is the language to use? And how expressive is it? Our aim is to find a language that might be suitable for a financial engineer and we thus want a suitably high-level language. It should be near the complexity level of R. We still want the language to expressive enough to cover the domain of financial algorithms.

Subquestions include

  • Which programs can we write, and which can't we write?

    • Can we write nested loops?

      Yes, but performance will suffer if the parallel control paths diverge.

    • Does it include all of: scans, folds, zip/map, stencils,

      (All check).

  • How good are the error messages?

    "CudaErrorLaunchFailure" is the typical response to in-kernel runtime errors it seems. Compile-time errors tend to be more descriptive though. (TODO, actually list some errors?)

  • How high-level is it on the scale from R to CUDA? CUDA, obviously.

(General expressiveness notes)

  • Debugging with printf is difficult.
  • No simulator included - The actual hardware is needed to develop software.
  • The lowest level available high level language for the platform.

Survey "VectorMARK" in progress

Clone this wiki locally