Languages Research Questions

From Modelado Foundation Wiki
Jump to: navigation, search

Below are the questions addressed in the Languages and DSLs Research Panel. Please add your comments (with you name) after each question.

Science Domain Support

Is there support for specific science domains, e.g., high level array abstractions, other data structures, tensors, stencils, etc.?

Compute Node Support

Does the language support programming both within and between compute nodes on the systems (or, for example, is this a languages for X in an MPI+X strategy)? If the language handles both, does it distinguish between on-node and between-node parallelism support?

Parallelism Support

What types of parallelism are supported? Is there data parallelism intended both for on-node SIMD hardware and global data parallelism (spread over nodes)? Is there dynamic task parallelism, and if so, both between and within nodes? Do they rely on some form of static parallelism, e.g., SPMD?

Synchronization

What types of synchronization exist in the languages? What features exist to reduce the overhead of synchronization or to avoid over-synchronizing code? Are there assumptions about particular hardware supported atomic operations or synchronization?

Communication

How is communication between tasks handled? Can arbitrary communication be performed, or is it limited by task structure, type constraints, or some hardware features (e.g., shared memory within nodes, but not between)? Is there global communication (e.g., collectives)?

Novel Features

What other novel features exist for managing energy, resilience, reproducibility, or other systems features?