Programming abstractions for



Yüklə 0,54 Mb.
Pdf görüntüsü
səhifə21/23
tarix24.12.2017
ölçüsü0,54 Mb.
#17201
1   ...   15   16   17   18   19   20   21   22   23

Chapter 8

Conclusion

The Programming Abstractions for Data Locality (PADAL) Workshop is intent on establishing the identity

for a community of researchers who are bound together by the notion that data locality comes first as the

primary organizing principle for computation. This paradigm shift from compute-centric towards data-centric

specification of algorithms has upended assumptions that underpin our current programming environments.

Parallelism is inextricably linked to data locality, and current programming abstractions are centered on

abstractions for compute (threads, processes, parallel do-loops). The PADAL workshop gives voice to the

groundswell of activity to explore abstractions for expressing parallelism in terms of data locality. The time

has arrived to embrace data locality as being the anchor for computation. PADAL has identified a community

that is actively exploring a wide-open field of new approaches to describing computation and parallelism in

a way that conserves data movement. A number of these projects have produced working technologies that

are rapidly approaching maturity During this early phase of development, it is crucial to establish research

collaborations that leverage for commonalities and opportunities for inter-operation between these emerging

technologies.

8.1


Priorities

The highest priorities moving forward are to;

• Define data-centric approaches to computation as a community.

• Foster development of an identity through continued workshops and interactions.

• Define a common research agenda that cuts across the different research areas in libraries, compil-

ers/languages, runtime/task models, and system-scale implementations of data-locality centric pro-

gramming systems.

Much research in this area (as with all emerging fields of research) has focused on rapidly producing

implementations to demonstrate the value of data-centric programming paradigms. In order to get to the

next level of impact, there is a benefit to formalizing the abstractions for representing data layout patterns

and the mapping of computation to the data where it resides. It is our desire to create standards that

promote interoperability between related programming systems and cooperation to ensure all technology

implementations offer the most complete set of features possible for a fully functional programming envi-

ronment. The only way to achieve these goals is for this community to organize, consider our impact on

the design of the software stack at all levels, and work together towards the goal of creating interoperable

solutions that contribute to a comprehensive environment.

8.2

Research Areas



The following key research areas are outlined in this report.

42



8.3. NEXT STEPS

Data structures and layout abstractions to express and manage data layout : These are the over-

arching data layout abstractions that provide a compact description of data layout patterns. These

patterns can be embedded in libraries and data structures for library-based building blocks for appli-

cations, and also form a baseline for higher-level language and compiler support.

Language and compiler support for data locality: Compiler and language support for those abstrac-

tions take best practices from library approaches and elevate them into language constructs benefit

from broad community adoption of the overarching abstractions

Support for data locality in runtimes and tasks models: Many data layouts can be implemented stat-

ically, but the runtime system must be part of the solution for automating those choices for data sizes

and layouts that are only known at runtime. For task models some decisions that balance load-balance

against data-locality can be can be static, semi-static, or fully dynamic depending on context.

Addressing system-scale data locality management issues: The reigning abstraction for system-level

resource management is that all resources at system level are equidistant and equal-cost to access, which

ignores optimizations for affinity or locality. System-wide systems considerations present an area of

research that speaks to the need to develop a new class of locality aware resource managers, locality

aware communication libraries, or adding hooks to enable introspection and control of data locality.

8.3


Next Steps

Follow-on Workshops: In order to maintain our momentum and continue to organize this research com-

munity will require active participation in workshops and perhaps continued dialogue in mini-symposia

and other research gatherings. The Lugano workshop is hopefully the first of a series. The organizers

intend to schedule the next workshop in Berkeley, California for the Spring or Summer of 2015.

Define Research Agenda: As enumerated in section 8.2 four primary research areas have been identified

and the introduction to this report has provided findings and recommendations for the next steps to

carry out a research agenda in each area. As the next step, the community should identify leaders in

each of these respective areas to continue community dialogue on advancing the recommendations and

engaging in their funding agencies to describe the value proposition for investing in this research and

to identify funding opportunities in related areas.

Interoperability: The underlying abstractions and data structures that were outlined by independent re-

searchers showed much commonality in approach and abstractions despite differences in implemen-

tations.


The commonality of approach points to an opportunity to create a common lower-level

implementation for these myriad research products. Mature technologies should consider standards

to support compatibility and interoperability across implementations and work towards a common

underlying system software that can enable multiple user-facing implementations. Such design for

interoperability and (where possible) standardization of lower level interfaces enables a diversity of the

higher-level user-facing APIs.

It is crucial that these systems interoperate with runtimes systems to perform the mapping from data

structures that describe data layout to optimal mapping of the application onto the underlying system

fabric. To accomplish this goal, libraries, languages, and runtimes should offer common interfaces to

the libraries and languages can introspect the system and interact with the system services that control

data placement. This need for interoperation of system services and program description underpins the

desire to get all four of these thrust areas to work together towards common abstractions or standards

where possible. It also ensures a practical amount of effort on the part of HPC system manufacturers

by tying to a common underlying system software infrastructure.

The PADAL workshop has identified several broad research areas that have common cause and related

technologies and solutions. We have held the first of what we hope to be many workshops and meetings to

further establish this research community and to establish points of research collaboration and sharing of

ideas. We look forward to future collaborations and a continued progress in this emerging area of parallel

programming environments research.

Programming Abstractions for Data Locality

43



Yüklə 0,54 Mb.

Dostları ilə paylaş:
1   ...   15   16   17   18   19   20   21   22   23




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə