Skip to content
@PlatformAwareProgramming

Platform-aware programming

Platform-aware programming

It is the practice of writing computationally demanding code making assumptions about features specific to the resources of the target execution platform, such as deep memory hierarchies, multiprocessor nodes of a cluster, cluster's interconnection/network, processors of a multiprocessor system, cores of a multicore processor, accelerators (GPUs, FPGAs, MICs, etc), and so on.

It is a common practice among developers of applications whose viability depends on taking full advantage of the performance of high-throughput and high-performance computing (HTC/HPC) systems. Traditionally, they are programmers of particular niches, such as scientific computing, especially when interested in using high-end parallel computing architectures.

The practice of platform-aware programming tends to spread as heterogeneous computing architectures, such as accelerators, are becoming essential tools to enable many Artificial Intelligence (AI) and Data Analytics applications. In addition, the growing interest in using accelerator technology (GPUs, FPGAs, etc) has driven the heterogeneity of both vendors and products available on the market. In fact, heterogeneous computing is becoming even more heterogeneous over the years.

Despite the efforts of academia and industry to propose new common interfaces and abstractions for programming various kinds of accelerators, there are many situations where programmers are forced to use specific accelerator features to achieve their maximum performance. In fact, the most efficient use of heterogeneous computing still requires heterogeneous programming. However, the efforts of programming language designers and researchers are scarce on the development of heterogeneous programming abstractions based on respect for the heterogeneous nature of the execution environments. They are mainly focused on dealing with performance portability issues behind general interfaces and abstractions.

This organization is dedicated to hosting projects that offer programming interfaces and abstractions to help programmers deal with the complexity of platform-aware programming, especially seeking to explore the capabilities of different accelerator architectures, as well as specific features of processors and clusters interconnections.

Our first initiative is PlatformAware.jl, a package that aims to enable platform-aware programming in tie Julia programming language. It is hosted in this organization.

Pinned Loading

  1. PlatformAware.jl Public

    Platform-aware programming in Julia

    Julia 13 1

  2. CloudClusters.jl Public

    Julia 9

Repositories

Showing 10 of 15 repositories
  • NPBApps.jl Public
    Julia 1 MIT 1 0 0 Updated Feb 22, 2025
  • Julia 9 MIT 0 4 0 Updated Feb 6, 2025
  • Multicluster.jl Public Forked from PlatformAwareProgramming/Distributed.jl

    Multicluster support by an extension to Distributed.jl

    Julia 0 MIT 14 0 0 Updated Feb 2, 2025
  • Distributed.jl Public Forked from JuliaLang/Distributed.jl

    Hierarquical processes (multicluster)

    Julia 0 MIT 14 0 0 Updated Feb 2, 2025
  • PlatformAware.jl Public

    Platform-aware programming in Julia

    Julia 13 MIT 1 5 2 Updated Nov 29, 2024
  • HTML 0 0 0 0 Updated Nov 1, 2024
  • NPBApps_MZ.jl Public Forked from PlatformAwareProgramming/NPBApps.jl

    Multicluster version of NPBApp.jl

    Julia 0 MIT 1 0 0 Updated Jan 10, 2024
  • MultiscaleCluster.jl Public

    An experimental extension of Distributed.jl for multiscale parallelism.

    Julia 0 0 0 0 Updated Nov 10, 2023
  • Hash.jl Public
    Julia 0 0 0 0 Updated Jun 1, 2023
  • Julia 0 0 0 0 Updated Jun 1, 2023

Top languages

Loading…

Most used topics

Loading…