Transformace matice
Vstupní matice 4x4:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
Matice 4x4 po transformaci:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
Transformaci bude provádět n(n-1) vláken/procesů. Jedna polovina n(n-1)/2 vláken/procesů
může číst data nad hlavní diagonálou a zapisovat data pod hlavní diagonálu.
Druhá polovina vláken/procesů může číst data pod hlavní diagonálou a zapisovat data nad hlavní diagonálu.
main: generating random matrix 2x2:
0 69
50 59
main: initializing barrier mutex
main: initializing barrier condition
main: 2 bricks in barrier left
main: creating thread for cell [0,1]
thread [0,1] created and reads value 69 from source cell
main: creating thread for cell [1,0]
thread [0,1] breaks one brick in barrier - 1 left
thread [1,0] created and reads value 50 from source cell
thread [0,1] reaches barrier... waiting for others
thread [1,0] breaks one brick in barrier - 0 left
thread [1,0] breaks last brick in barrier... broadcasting condition
main: joining thread for cell [0,1]
thread [1,0] passes barrier and writes value 50 to target cell
thread [0,1] passes barrier and writes value 69 to target cell
main: thread for cell [0,1] joined
main: joining thread for cell [1,0]
main: thread for cell [1,0] joined
main: output matrix:
0 50
69 59
main: destroying barrier mutex
main: destroying barrier condition
main: allocating shared memory for matrix data
main: attaching shared memory for matrix data
main: generating random matrix 2x2:
51 17
30 53
main: allocating barrier semaphore
main: initializing barrier semaphore
main: 2 bricks in barrier left
main: invoking process for cell [0,1]
main: invoking process for cell [1,0]
process [0,1] created and reads value 17 from source cell
process [1,0] created and reads value 30 from source cell
process [1,0] breaks one brick in barrier - 1 left
process [1,0] reaches barrier... waiting for others
main: waiting for termination of process for cell [0,1]
process [0,1] breaks one brick in barrier - 0 left
process [1,0] passes barrier and writes value 30 to target cell
process [0,1] breaks last brick in barrier... semaphore is cleardown
process [0,1] passes barrier and writes value 17 to target cell
main: process for cell [0,1] terminated
main: waiting for termination of process for cell [1,0]
main: process for cell [1,0] terminated
main: output matrix:
51 30
17 53
main: destroying barrier semaphore
main: deallocating shared memory
© 2006 Jan Skalicky
cz (dot) skalda (at) seznam (dot) cz