Corpus ID: 236428584

Performance vs Programming Effort between Rust and C on Multicore Architectures: Case Study in N-Body

  title={Performance vs Programming Effort between Rust and C on Multicore Architectures: Case Study in N-Body},
  author={Manuel Costanzo and Enzo Rucci and Marcelo R. Naiouf and Armando De Giusti},
Historically, Fortran and C have been the default programming languages in High-Performance Computing (HPC). In both, programmers have primitives and functions available that allow manipulating system memory and interacting directly with the underlying hardware, resulting in efficient code in both response times and resource use. On the other hand, it is a real challenge to generate code that is maintainable and scalable over time in these types of languages. In 2010, Rust emerged as a new… Expand


Evaluation of performance and productivity metrics of potential programming languages in the HPC environment
This thesis aims to analyze new programming languages in the context of highperformance computing (HPC). In contrast to many other evaluations the focus is not only on performance but also onExpand
Performance and Productivity of New Programming Languages
The framework used for this assessment and the results gathered during the study are described together with guidelines for interpretation to help scientific groups to choose the optimal combination of language and hardware to efficiently tackle their scientific problems. Expand
Java in the High Performance Computing arena: Research, practice and experience
This paper analyzes the current state of Java for HPC, both for shared and distributed memory programming, presents related research projects, and evaluates the performance of current Java HPC solutions and research developments on two shared memory environments and two InfiniBand multi-core clusters. Expand
High-Performance Parallel Computations Using Python as High-Level Language
This study considers Python as a preliminary candidate with the intent of improving code readability, flexibility and, in turn, the level of confidence with respect to correctness in the bookkeeping logic of SMP-MRRR, a C & Fortran highly optimized multi-core eigensolver, which is ported to Python. Expand
Is Fortran Still Relevant? Comparing Fortran with Java and C++
This paper presents a comparative study to evaluate and compare Fortran with the two most popular programming languages Java and C++ by applying software metrics to the ray tracing application and comparing these results with the similarities and differences found in practice. Expand
A comparative study of high-productivity high-performance programming languages for parallel metaheuristics
Three productivity-aware languages (Chapel, Julia, and Python) are compared in terms of performance, scalability and productivity, the first time such a comparison is performed in the context of parallel metaheuristics. Expand
System Programming in Rust: Beyond Safety
This work argues that the superpowers of Rust go beyond safety, and enables capabilities that cannot be implemented efficiently in traditional languages, both safe and unsafe, and that dramatically improve security and reliability of system software. Expand
RustBelt: securing the foundations of the Rust programming language
This paper gives the first formal (and machine-checked) safety proof for a language representing a realistic subset of Rust, and is extensible in the sense that, for each new Rust library that uses unsafe features, it can say what verification condition it must satisfy in order to be deemed a safe extension to the language. Expand
What can the programming language Rust do for astrophysics?
This work explores the advantages and drawbacks of Rust for astrophysics by re-implementing the fundamental parts of Mercury-T, a Fortran code that simulates the dynamical and tidal evolution of multi-planet systems. Expand
Optimization of the N-Body Simulation on Intel's Architectures Based on AVX-512 Instruction Set
This paper optimizes the all-pairs N-body simulation on both current Intel platforms supporting AVX-512 extensions: a Xeon Phi KNL node and a server equipped with a dual CKL processor. Expand