TY - JOUR
T1 - Parallel break construct, or how to kill an activity tree
AU - Friedman, Yair I.
AU - Feitelson, Dror G.
AU - Exman, Iaakov
PY - 1996
Y1 - 1996
N2 - Most parallel languages provide means to express parallelism, e.g. a parallel-do construct, but no means to terminate the parallel activities spawned by such constructs. We propose three high-level primitives for this purpose, which are defined by analogies with primitives that break out of sequential iterative constructs. The primitives are pcontinue, which terminates the calling activity, pbreak, which terminates all the activities in the construct that spawned the calling activity, and return, which terminates all the activities created in the current function call. These constructs are especially useful in search problems, where an activity that finds a solution can terminate other activities that are investigating inferior approaches. Given that parallel constructs can be nested, activities form a tree rooted at the original activity that started the program. The main challenge in implementing pbreak and return is identifying the subtree of activities that should be killed. Three algorithms were designed and implemented, and experiments show that using these constructs can provide significant performance benefits.
AB - Most parallel languages provide means to express parallelism, e.g. a parallel-do construct, but no means to terminate the parallel activities spawned by such constructs. We propose three high-level primitives for this purpose, which are defined by analogies with primitives that break out of sequential iterative constructs. The primitives are pcontinue, which terminates the calling activity, pbreak, which terminates all the activities in the construct that spawned the calling activity, and return, which terminates all the activities created in the current function call. These constructs are especially useful in search problems, where an activity that finds a solution can terminate other activities that are investigating inferior approaches. Given that parallel constructs can be nested, activities form a tree rooted at the original activity that started the program. The main challenge in implementing pbreak and return is identifying the subtree of activities that should be killed. Three algorithms were designed and implemented, and experiments show that using these constructs can provide significant performance benefits.
UR - http://www.scopus.com/inward/record.url?scp=0029718936&partnerID=8YFLogxK
M3 - ???researchoutput.researchoutputtypes.contributiontojournal.conferencearticle???
AN - SCOPUS:0029718936
SN - 1063-6374
SP - 230
EP - 234
JO - IEEE Symposium on Parallel and Distributed Processing - Proceedings
JF - IEEE Symposium on Parallel and Distributed Processing - Proceedings
T2 - Proceedings of the 1996 10th International Parallel Processing Symposium
Y2 - 15 April 1996 through 19 April 1996
ER -