Class Based EM
The EM algorithm program can be built similarly to the counting algorithm. Both require UPC++ and boost.
Once built, the em algorithm can be executed as follows:
upcxx-run -N 1 -n 20 --class_file 2022_01_01_em_input.bin --init_alpha 0.8 --init_beta 0.2 --init_rho 0.1 --max_iters 100 --output_file em_results.csv
The output of this execution will be the inferred alphas and betas for each route collector. Standard output will also read out a few other useful metrics.