In contrast to the previous examples that we've been going through, this is an example of a program whose opportunities for parallelism arise dynamically (after some iterations have already been executed).
yeq
There may not be much parallelism presented at the very beginning. In fact, it's only a two-way parallelism. However, since it is a recursive algorithm, even though the execution seems more or less sequential at the very top, the processors quickly get saturated after several iterations of function calls are made. This is a general pattern of a divide-and-conquer algorithm that the parallel things to do generate dynamically as we are running the code.
In contrast to the previous examples that we've been going through, this is an example of a program whose opportunities for parallelism arise dynamically (after some iterations have already been executed).
There may not be much parallelism presented at the very beginning. In fact, it's only a two-way parallelism. However, since it is a recursive algorithm, even though the execution seems more or less sequential at the very top, the processors quickly get saturated after several iterations of function calls are made. This is a general pattern of a divide-and-conquer algorithm that the parallel things to do generate dynamically as we are running the code.