The multiplication of a sparse matrix by a dense vector (SpMV) is a centerpiece of scientific computing applications: it is the essential kernel for the solution of sparse linear systems and sparse eigenvalue problems by iterative methods. The efficient implementation of the sparse matrix-vector multiplication is therefore crucial and has been the subject of an immense amount of research, with interest renewed with every major new trend in high-performance computing architectures. The introduction of General-Purpose Graphics Processing Units (GPGPUs) is no exception, and many articles have been devoted to this problem.With this article, we provide a review of the techniques for implementing the SpMV kernel on GPGPUs that have appeared in the literature of the last few years. We discuss the issues and tradeoffs that have been encountered by the various researchers, and a list of solutions, organized in categories according to common features. We also provide a performance comparison across different GPGPU models and on a set of test matrices coming from various application domains.
Coarray Fortran is a set of features of the Fortran 2008 standard that make Fortran a PGAS parallel programming language. Two commercial compilers currently support coarrays: Cray and Intel. Here we present two coarray transport layers provided by the new OpenCoarrays project: one library based on MPI and the other on GASNet. We link the GNU Fortran (GFortran) compiler to either of the two OpenCoarrays implementations and present performance comparisons between executables produced by GFortran and the Cray and Intel compilers. The comparison includes synthetic benchmarks, application prototypes, and an application kernel. In our tests, Intel outperforms GFortran only on intra-node small transfers (in particular, scalars). GFortran outperforms Intel on intra-node array transfers and in all settings that require inter-node transfers. The Cray comparisons are mixed, with either GFortran or Cray being faster depending on the chosen hardware platform, network, and transport layer
The advent of Exascale computing invites an assessment of existing best practices for developing application readiness on the world's largest supercomputers. This work details observations from the last four years in preparing scientific applications to run on the Oak Ridge Leadership Computing Facility's (OLCF) Frontier system. This paper addresses a range of topics in software including programmability, tuning, and portability considerations that are key to moving applications from existing systems to future installations. A set of representative workloads provides case studies for general system and software testing. We evaluate the use of early access systems for development across several generations of hardware. Finally, we discuss how best practices were identified and disseminated to the community through a wide range of activities including user-guides and trainings. We conclude with recommendations for ensuring application readiness on future leadership computing systems.
In the last decade, Machine Learning has experienced a dramatic increase in performance on a wide variety of tasks, including computer vision, speech recognition, text parsing, and language translation, just to name a few. This has corresponded to an understandable hype especially for the remarkable results achieved in some cases. Therefore, practitioners of Scientific Disciplines have become interested in utilizing new Machine Learning techniques, and have sometimes started doing so with mixed success. The purpose of this paper is to describe some of the common Traps, Pitfalls and Misconceptions of Machine Learning as relevant to the Scientific Discipline, and how to avoid them. In fact, Machine Learning and Deep Learning are fast evolving fields, and some of the astonishing results achieved recently sit on small but important details which have become the state of the art. Some of these details are not broadly known by the scientific community. No new scientific result is presented in this paper, which is a survey and a summary of the best of the field, for the benefit of researchers with limited experience. It is not the intention of the authors to provide any criticism to the work of experienced practitioners, particularly not to the ones working on the cutting edge of what is currently possible: in these cases expert researchers may well be doing exactly what we recommend here to avoid, and for a good reason. However we believe that the advice provided here will be useful, and perhaps even a reference, for the newcomers of the field.