Research Article
On the Parallelization of Stream Compaction on a Low-Cost SDC Cluster
| | Input: Vector I of length n | | | Input: Predicate function F | | | Input: Number of processes p | | | Input: pid of process | | | Output: Vector O of valid elements | | | Output: nvalid: the number of valid elements | | (1) | | | (2) | | | (3) | | | (4) | | | (5) | for to in parallel do | | (6) | if then | | (7) | | | (8) | | | (9) | end if | | (10) | end for | | (11) | if then | | (12) | Send to process pid 0 | | (13) | end if | | (14) | if then | | (15) | for to do | | (16) | | | (17) | | | (18) | end for | | (19) | for to do | | (20) | Send to process pid i | | (21) | end for | | (22) | | | (23) | Send to all processes | | (24) | end if | | (25) | if then | | (26) | Receive | | (27) | Receive | | (28) | end if | | (29) | | | (30) | for to in parallel do | | (31) | | | (32) | end for | | (33) | for to in parallel do | | (34) | if then | | (35) | | | (36) | else | | (37) | | | (38) | end if | | (39) | end for |
|