Effect of memory access and caching on high performance computing

Date

2012-05-17

Journal Title

Journal ISSN

Volume Title

Publisher

Kansas State University

Abstract

High-performance computing is often limited by memory access. As speeds increase, processors are often waiting on data transfers to and from memory. Classic memory controllers focus on delivering sequential memory as quickly as possible. This will increase the performance of instruction reads and sequential data reads and writes. However, many applications in high-performance computing often include random memory access which can limit the performance of the system. Techniques such as scatter/gather can improve performance by allowing nonsequential data to be written and read in a single operation. Caching can also improve performance by storing some of the data in memory local to the processor. In this project, we try to find the benefits of different cache configurations. The different configurations include different cache line sizes as well as total size of cache. Although a range of benchmarks are typically used to test performance, we focused on a conjugate gradient solver, HPCCG. The program HPCCG incorporates many of the elements of common benchmarks used in high-performance computing, and relates better to a real world problem. Results show that the performance of a cache configuration can depend on the size of the problem. Problems of smaller sizes can benefit more from a larger cache, while a smaller cache may be sufficient for larger problems.

Description

Keywords

Cache, High performance computing, FPGA, Memory

Graduation Month

August

Degree

Master of Science

Department

Department of Electrical and Computer Engineering

Major Professor

Dwight D. Day

Date

2012

Type

Thesis

Citation