/* © Copyright The University of Edinburgh 2011 */

#include <stdlib.h>
#include <upc.h>

int main(int argc, char *argv)
{

    static shared int x[THREADS];
    int i;

    if( MYTHREAD == 0 ) {
        x[0] = MYTHREAD;
        // Broadcast
        for(i=1; i < THREADS; i++)
            x[i] = x[0];
    }

    // Sync to ensure that master has finished broadcasting
    upc_barrier;

    // Print message
    printf("%3d received from master %3d.\n", MYTHREAD, x[MYTHREAD]);

    exit(EXIT_SUCCESS);
}

