Of course deciding on a MoC does not mean the
MoC should be transposed verbatim in a program-
ming language. After all, even if assembly has no
notion of functions or objects, lots of programming
languages offer these concepts. But being a good
MoC means a programming language can be com-
piled so that to conform to the implementation of the
MoC in a Model of Execution on a given system. A
good MoC should scale well from the fine granular-
ities as parallel-for up to the real-time tasks. Using
such a MoC would be a good step toward a “univer-
sal” Intermediate Representation for compiling tools
of manycore systems, as it does not require locks or
most of the hardware features that render timing so
difficult in modern multicore and manycore systems.
The next step will be to verify all the required
mathematical properties of the proposed MoC and
build a generic Intermediate Representation upon it
and then programming tools. Other works will be
aimed at taking heterogeneous systems into account.
REFERENCES
Amarasinghe, S., Gordon, M. I., Karczmarek, M., Lin,
J., Maze, D., Rabbah, R. M., and Thies, W. (2005).
Language and compiler design for streaming applica-
tions. International Journal of Parallel Programming,
33(2/3):261–278.
Aubry, P., Beaucamps, P.-E., Blanc, F., Bodin, B., Car-
pov, S., Cudennec, L., David, V., Dore, P., Dubrulle,
P., de Dinechin, B. D., Galea, F., Goubier, T., Har-
rand, M., Jones, S., Lesage, J.-D., Louise, S., Chaise-
martin, N. M., Nguyen, T. H., Raynaud, X., and
Sirdey, R. (2013). Extended cyclostatic dataflow
program compilation and execution for an integrated
manycore processor. In Alexandrov, V. N., Lees, M.,
Krzhizhanovskaya, V. V., Dongarra, J., and Sloot, P.
M. A., editors, ICCS, volume 18 of Procedia Com-
puter Science, pages 1624–1633. Elsevier.
Buck, I. (2004). Brook specification v.0.2. Technical report,
Stanford University.
Buck, J. and Lee, E. (1993a). Scheduling dynamic dataflow
graphs with bounded memory using the token flow
model. In Acoustics, Speech, and Signal Processing,
1993. ICASSP-93., 1993 IEEE International Confer-
ence on, volume 1, pages 429–432 vol.1.
Buck, J. T. and Lee, E. A. (1993b). Scheduling dynamic
dataflow graphs with bounded memory using the to-
ken flow model. Technical report.
Campbell, M., Egerstedt, M., How, J. P., and Murray,
R. M. (2010). Autonomous driving in urban envi-
ronments: approaches, lessons and challenges. Philo-
sophical Transactions of the Royal Society of London
A: Mathematical, Physical and Engineering Sciences,
368(1928):4649–4672.
Choi, B., Komuravelli, R., Sung, H., Smolinski, R., Honar-
mand, N., Adve, S., Adve, V., Carter, N., and Chou,
C.-T. (2011). Denovo: Rethinking the memory hierar-
chy for disciplined parallelism. In Parallel Architec-
tures and Compilation Techniques (PACT), 2011 In-
ternational Conference on, pages 155–166.
de Oliveira Castro, P., Louise, S., and Barthou, D. (2010).
Reducing memory requirements of stream programs
by graph transformations. In High Performance Com-
puting and Simulation (HPCS), 2010 International
Conference on, pages 171 –180.
Dkhil, A., Do, X.-K., Louise, S., and Rochange, C. (2015).
A hybrid algorithm based on self-timed and periodic
scheduling for embedded streaming applications. In
Proceedings of Euromicro International Conference
on Parallel, Distributed, and Network-Based Process-
ing (EuroPDP 2015).
Feiner, S., MacIntyre, B., Hollerer, T., and Webster, A.
(1997). A touring machine: prototyping 3d mobile
augmented reality systems for exploring the urban en-
vironment. In Wearable Computers, 1997. Digest of
Papers., First International Symposium on, pages 74
–81.
G. Bilsen, M. Engels, R. L. and Peperstraete, J. A. (1996).
Cyclo-static data flow. IEEE Transactions on Signal
Processing, 44(2):397–408.
Guizzo, E. (2011). How googles self-driving car works.
IEEE Spectrum Online, October, 18.
Gustafson, J. L. (1988). Reevaluating amdahl’s law. Com-
mun. ACM, 31(5):532–533.
Herlihy, M. and Moss, J. E. B. (1993). Transactional mem-
ory: Architectural support for lock-free data struc-
tures, volume 21. ACM.
Kahn, G. (1974). The semantics of a simple language
for parallel programming. In Information processing,
pages 471–475.
Khronos OpenCl Working Group (2008). The opencl spec-
ification. Technical report.
Lee, E. A. (2006). The problem with threads. Computer,
39(5):33–42.
Louise, S., Dubrulle, P., and Goubier, T. (2014). A model
of computation for real-time applications on embed-
ded manycores. In Embedded Multicore/Manycore
SoCs (MCSoc), 2014 IEEE 8th International Sympo-
sium on, pages 333–340.
Murillo, A., Gutierrez-Gomez, D., Rituerto, A., Puig, L.,
and Guerrero, J. (2012). Wearable omnidirectional vi-
sion system for personal localization and guidance. In
Computer Vision and Pattern Recognition Workshops
(CVPRW), 2012 IEEE Computer Society Conference
on, pages 8 –14.
NVIDIA Corp. (2007). NVIDIA CUDA: Compute unified
device architecture. Technical report.
Sato, Y., Nakamoto, M., Tamaki, Y., Sasama, T., Sakita, I.,
Nakajima, Y., Monden, M., and Tamura, S. (1998).
Image guidance of breast cancer surgery using 3-d ul-
trasound images and augmented reality visualization.
Medical Imaging, IEEE Transactions on, 17(5):681 –
693.
Stuijk, S. (2007). Predictable mapping of streaming appli-
cations on multiprocessors. In Phd thesis.
ENASE2015-10thInternationalConferenceonEvaluationofNovelSoftwareApproachestoSoftwareEngineering
50