Computing Reviews

Automatic generation of parallel C code for stencil applications written in MATLAB
Spazier J., Christgau S., Schnor B.  ARRAY 2016 (Proceedings of the 3rd ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming, Santa Barbara, CA, Jun 14, 2016)47-54,2016.Type:Proceedings
Date Reviewed: 08/02/16

The authors present StencilPaC, described in the abstract as “an automatic translation from a MATLAB subset into efficient parallelized C code for different architectures: multicores, compute clusters, and GPGPUs.” The paper itself is more careful and points out that this is a prototype. They evaluate it on only two codes, a real-world Tsunami simulator and a variant of Conway’s Life. The authors provide code for the translated stencil cores of these applications, which is just as well because the descriptions are unhelpful. Tsunami is indeed more memory bound than Life, but not because of the reasons stated--indeed Tsunami requires 14 Flop (11 instructions because we can use three fused multiply-add operations) for 13 operands, and Life requires eight instructions on nine variables--but rather because Life is in fact operating on “char” rather than double variables, and hence the nine values will generally fit into three words.

One advantage of these applications is that there are reference C versions, sequential and parallel, to compare with. The results are in fact reasonable: their generated C is comparable to (and when compiled optimized slightly faster than) the reference C for sequential implementation. Again all parallel versions, OpenMP, message passing interface (MPI), and OpenACC, show similar speedup behavior to the reference parallel versions.

Unfortunately, the authors neglect to state which version of MATLAB they were using, which C compiler, or which version, and what the definition of “optimized” is. Hence I fear we have yet another unreproducible parallelism paper.

Reviewer:  J. H. Davenport Review #: CR144655 (1611-0821)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy