Scientific computing and efficient memory usage

AI Thread Summary
Efficient data structures and memory management are crucial for scientific computing, especially when dealing with large arrays in parallel programming using C/C++ and MPI. The discussion highlights the importance of sequential memory access to optimize RAM throughput and the role of CPU cache management in performance. A reference to a wiki article on merge sorting is provided, which briefly touches on these concepts and includes links for further reading on locality of reference, an essential factor in optimizing memory access patterns. Understanding these principles can help mitigate memory bottlenecks in computational tasks.
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
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I had a Microsoft Technical interview this past Friday, the question I was asked was this : How do you find the middle value for a dataset that is too big to fit in RAM? I was not able to figure this out during the interview, but I have been look in this all weekend and I read something online that said it can be done at O(N) using something called the counting sort histogram algorithm ( I did not learn that in my advanced data structures and algorithms class). I have watched some youtube...
Back
Top