- Simple numerical algorithms
- Sequential and binary search algorithms
- Quadratic sorting algorithms (selection, insertion)
- O(N log N) sorting algorithms (Quicksort, heapsort, mergesort)
- Hash tables, including collision-avoidance strategies
- Binary search trees
- Representations of graphs (adjacency list, adjacency matrix)
- Depth- and breadth-first traversals
- Shortest-path algorithms (Dijkstra’s and Floyd’s algorithms)
- Transitive closure (Floyd’s algorithm)
- Minimum spanning tree (Prim’s and Kruskal’s algorithms)
- Topological sort
graph algorithm examples
numeric algorithm examples
sorting algorithm examples
searching algorithm examples
- Classroom challenge: Matrix Multiplication, Performance and Scalability in OpenMP
-
Material Type:
Article / White paper 
Technical Format:
.gz, PDF document Location:
Go to materials Date Added:
09/23/2010 Date Modified:
09/23/2010 Author
Nicolás Wolovick, National University of Córdoba, Argentina Description: A simple, widely known and studied problem was posed to the class students: matrix multiplication. We made an internal contest, which was to obtain the fastest serial code in which the students learned a lot about compiler optimizations, and even more, the effect of caches in code performance. The objective of the contest was to extrapoloate this exercise into a massive multicore architecture. Students were given kickstart code with a naive C using an OpenMP implemention of the problem, and a series of rules. The kickstart code and the better student results are included in this posting.
Recommended Audience:
Beginning programmers, Secondary School students, Undergraduate students Language:
English Keywords:
Matrix, Mulitply, performance, OpenMP, scalability, contest, kickstart, compiler, student, activity, SSE, intrinsics
