Friday, February 12, 2010

A word about pre-fetching

http://en.wikipedia.org/wiki/Prefetching

Prefetching generally means loading something ahead of time and could refer to any one of the following topics:

* Instruction prefetch, in computer architecture, a microprocessor speedup technique
* Prefetch input queue (PIQ), in computer architecture, pre-loading machine code from memory
* Link prefetching, a web mechanism for prefetching links
* The Prefetcher technology in modern releases of Microsoft Windows
* PREFETCH an X86 instruction in computing
* Prefetch buffer, a feature of DDR SDRAM memory
* Swap prefetch, in computer operating systems, anticipatory paging

About MPI (message passing interface)
* http://www.cilk.com/multicore-blog/?Tag=MPI
* works well for distributed computing (private memory), but not for multi-cores (shared memory, maybe ok for NUMA - non-uniformed memory access)
* Indeed, MPI represents to distributed-memory multiprocessors what Pthreads and WinAPI threads represent to shared-memory multicore systems: an assembly language for programming concurrent programs. (Thus, some might argue whether message-passing actually merits the designation “concurrency platform.”)
* The MPI_Send()function blocks (does not return) until after the message has been received. The MPI_Recv() function blocks until a message arrives.
* The 12-argument library function MPI_Sendrecv() allows the programmer to both send a message and receive a message as a single operation,
* sends data in between threads to later aggregate data

No comments: