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 16Transformaci 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