Checklist for Parallelization and Vectorization Assignments =========================================================== The assignments have been designed with the objective of understanding the concept of dependence, parallelization, and vectorization, to speculate the feasibility of parallelization and vectorization of small testcases, and to verify your observation by examining the results of the auto-vectorization and auto-parallelization pass of GCC. Please try to respond to these statements after doing the assignments on GIMPLE. Your responses to the statements could be: `Yes', `No', or `Partly', or `I am not sure'. In case you are unable to say `Yes' for many of the statements, we advise you to talk to a Teaching Assistant to clarify the concepts. If the need be, we will try to find someone to explain the concepts later in the evening. In General ---------- 1. I know how to compute the dependences in a given program 2. I can manually determine that whether the given code can be vectorized or parallelized. 3. I am aware of the transformations that can be applied to the given input code to enable vectorization/parallelization, or to make it profitable. In GCC ------ 1. I know how to invoke parallelization and vectorization passes. 2. I can generate verbose dumps of the parallelized and vectorized code (if possible) for an input program. 3. I can look at the vectorized IR, and figure out the transformations done to the sequential input code.