Scientific computing and efficient memory usage

Click For Summary
SUMMARY

This discussion focuses on efficient data structures and memory management in scientific computing, particularly in the context of parallel programming using C/C++ with MPI and GPU programming. Key considerations include the importance of sequential memory access to optimize RAM throughput and the impact of CPU cache handling on performance. The conversation references a wiki article on merge sorting that touches on these topics and provides additional resources related to locality of reference.

PREREQUISITES
  • Understanding of C/C++ programming, particularly with MPI
  • Familiarity with GPU programming concepts
  • Knowledge of memory management techniques in scientific computing
  • Awareness of data structure optimization strategies
NEXT STEPS
  • Research efficient data structures for scientific computing
  • Learn about memory management techniques specific to C/C++
  • Explore GPU programming frameworks such as CUDA or OpenCL
  • Investigate the concept of locality of reference and its implications for performance
USEFUL FOR

Researchers, software engineers, and data scientists involved in scientific computing, particularly those focusing on parallel programming and memory optimization strategies.

torquil
Messages
648
Reaction score
2
Hi!

I wonder if it is possible to get some book recommendations on the subject of efficient data structures and memory management in scientific computing? I do a bit of parallel programming in C/C++ with MPI, and I'm now considering trying my hand at some GPU programming as well.

When working with large arrays there is the possibility of introducing memory bottlenecks, so I would like to learn a bit more about efficient data structures and memory management in the context of scientific computing.

Best regards
Torquil
 
Last edited by a moderator:
Technology news on Phys.org
The main issue is the fact that ram memory throughput is greater when it's sequentially accessed or nearly so. How the cpu handles cache is another factor to consider.

There's a brief mention of this in a wiki article on merge sorting, not much detail, but it does contain links to other articles, such as locality of reference.

http://en.wikipedia.org/wiki/Merge_sort#Optimizing_merge_sort
 

Similar threads

  • · Replies 6 ·
Replies
6
Views
4K
Replies
29
Views
6K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 14 ·
Replies
14
Views
3K
  • · Replies 4 ·
Replies
4
Views
7K
  • · Replies 5 ·
Replies
5
Views
4K
Replies
10
Views
4K
Replies
8
Views
13K