Aldinucci, M., Danelutto, M.: Stream Parallel Skeleton Optimization. In: PDCS, pp. 955–962 (1999)
Aldinucci, M., Danelutto, M., Kilpatrick, P., Torquati, M.: Fastflow: High-level and efficient streaming on multicore, chap. 13, pp. 261–280 (2017). 10.1002/9781119332015.ch13
Asanovic, K., Bodík, R., Demmel, J., Keaveny, T., Keutzer, K., Kubiatowicz, J., Morgan, N., Patterson, D.A., Sen, K., Wawrzynek, J., Wessel, D., Yelick, K.A.: A view of the parallel computing landscape. Commun. ACM 52(10), 56–67 (2009)
Article
Google Scholar
Axelsson, E., Claessen, K., Sheeran, M., Svenningsson, J., Engdal, D., Persson, A.: The design and implementation of feldspar—an embedded language for digital signal processing. In: The 22nd International Symposium on Implementation and Application of Functional Languages, IFL 2010, Lecture Notes in Computer Science, vol. 6647, pp. 121–136. Springer (2010)
Barwell, A.D., Brown, C., Hammond, K., Turek, W., Byrski, A.: Using program shaping and algorithmic skeletons to parallelise an evolutionary multi-agent system in Erlang. J. Comput. Inform. 35(4), 792–818 (2016)
MathSciNet
MATH
Google Scholar
Barwell, A.D., Brown, C., Sarkar, S.: Proof-carrying refactorings: sound refactoring for haskell via dependent types. In: International Conference on Functional Programming (ICFP), pp. 1–25. In Submission (2021)
Brown, C., Danelutto, M., Hammond, K., Kilpatrick, P., Elliott, A.: Cost-directed refactoring for parallel Erlang programs. Int. J. Parallel Programm. 42(4), 564–582 (2014)
Article
Google Scholar
Brown, C., Janjic, V., Barwell, A., García, J.D., MacKenzie, K.: Refactoring GrPPI: generic refactoring for generic parallelism in C++. Int. J. Parallel Programm. 48(4), 603–625 (2020). https://doi.org/10.1007/s10766-020-00667-x
Article
Google Scholar
Brown, C., Janjic, V., Hammond, K., Schöner, H., Idrees, K., Glass, C.W.: Agricultural reform: more efficient farming using advanced parallel refactoring tools. In: Euromicro International Conference on Parallel, Distributed and Network-based Processing, PDP, pp. 36–43. IEEE Computer Society (2014)
Brown, C., Janjic, V., Barwell, A, Thomson, J, Lozano, R. C., Cole, M, Franke, B, Garcia-Sanchez, J.D., Astorga, D. D. R., MacKenzie, K.: A hybrid approach to parallel pattern discovery in C++. In: 2020 28th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP), pp. 187–191 (2020)
Burstall, R.M., Darlington, J.: A transformation system for developing recursive programs. J. ACM 24(1), 44–67 (1977)
MathSciNet
Article
Google Scholar
Butenhof, D.R.: Programming with POSIX Threads. Addison-Wesley Longman Publishing Co. Inc., USA (1997)
Google Scholar
Campbell, C., Miller, A.: A parallel programming with microsoft visual C++: design patterns for decomposition and coordination on multicore architectures, 1st edn. Microsoft Press (2011)
Cook, J.E., Wolf, A.L.: Discovering models of software processes from event-based data. ACM Trans. Softw. Eng. Methodol. 7(3), 215–249 (1998)
Article
Google Scholar
Corbett, J.C., Dwyer, M.B., Hatcliff, J., Laubach, S., Pasareanu, C.S., Robby, Zheng, H.: Bandera: extracting finite-state models from java source code. In: Proceedings of the 22nd International Conference on Software Engineering ICSE, pp. 439–448. ACM (2000)
Dagum, L., Menon, R.: Openmp: an industry-standard API for shared-memory programming. IEEE J. Comput. Sci. Eng. 5(1), 46–55 (1998)
Article
Google Scholar
De Sensi, D., De Matteis, T., Torquati, M., Mencagli, G., Danelutto, M.: Bringing parallel patterns out of the corner: the P3ARSEC benchmark suite. ACM Trans. Architect. Code Optim. (2017). https://doi.org/10.1145/3132710
Article
Google Scholar
del Rio Astorga, D., Dolz, M.F., Fernández, J., García, J.D.: A generic parallel pattern interface for stream and data processing. Concurr. Comput. Practice Exp. 29(24), e4175 (2017). https://doi.org/10.1002/cpe.4175
Article
Google Scholar
del Rio Astorga, D., Dolz, M.F., Sánchez, L.M., García, J.D., Danelutto, M., Torquati, M.: Finding parallel patterns through static analysis in C++ applications. Int. J. High-Performance Comput. (IJHPCA) 32(6), 779–88 (2018)
Article
Google Scholar
Dig, D.: A refactoring approach to parallelism. IEEE Softw. 28(1), 17–22 (2011)
Article
Google Scholar
Fowler, M.: Refactoring—improving the design of existing code. Addison Wesley Object Technology Series. Addison-Wesley, Boston (1999)
MATH
Google Scholar
González-Vélez, H., Leyton, M.: A survey of algorithmic skeleton frameworks: high-level structured parallel programming enablers. Softw. Pract. Exp. 40(12), 1135–1160 (2010)
Article
Google Scholar
Gorlatch, S.: Domain-specific optimizations of composed parallel components. In: Domain-specific program generation, Lecture Notes in Computer Science, vol. 3016, pp. 274–290. Springer (2003)
Gorlatch, S., Wedler, C., Lengauer, C.: Optimization rules for programming with collective operations. In: Proceedings of the 13th International Parallel Processing Symposium on Parallel and Distributed Computing IPPS/SPDP, pp. 492–499. IEEE Computer Society (1999)
Griebler, D., Danelutto, M., Torquati, M., Fernandes, L.G.: Spar: A DSL for high-level and productive stream parallelism. Parallel Processing Letters 27(1), 1740005:1–1740005:20 (2017). https://doi.org/10.1142/S0129626417400059
MathSciNet
Article
Google Scholar
Hagedorn, B., Stoltzfus, L., Steuwer, M., Gorlatch, S., Dubach, C.: High performance stencil code generation with lift. In: Proceedings of the International Symposium on Code Generation and Optimization, CGO, pp. 100–112. ACM (2018)
Janjic, V., Brown, C., Mackenzie, K., Hammond, K., Danelutto, M., Aldinucci, M., García, J.D.: RPL: A domain-specific language for designing and implementing parallel C++ applications. In: Proceedings of the 24th International Conference on Parallel, Distributed and Network-based Processing, PDP, pp. 288–295. IEEE Computer Society (2016)
Kennedy, K.: A survey of data flow analysis techniques. In: Muchnick, S.S., Jones, N.D. (eds.) Program Flow Analysis, pp. 5–54. Prentice-Hall, Englewood Cliffs (1981)
Google Scholar
Li, H., Thompson, S.J.: Safe concurrency introduction through slicing. In: Proceedings of the Workshop on Partial Evaluation and Program Manipulation, PEPM, pp. 103–113. ACM (2015)
Matsuzaki, K., Kakehi, K., Iwasaki, H., Hu, Z., Akashi, Y.: A fusion-embedded skeleton library. In: Euro-Par, Lecture Notes in Computer Science, vol. 3149, pp. 644–653. Springer (2004)
McCabe, T.J.: A complexity measure. IEEE Trans. Softw. Eng. 2(4), 308–320 (1976)
MathSciNet
Article
Google Scholar
Mens, T., Tourwé, T.: A survey of software refactoring. IEEE Trans. Softw. Eng. 30(2), 126–139 (2004)
Article
Google Scholar
Microsoft: Visual Studio IDE: https://visualstudio.microsoft.com/vs/. (2019)
Reyes, R., Lomüller, V.: SYCL: Single-source C++ accelerator programming. In: Proceedings of the International Conference on Parallel Computing (PARCO), Advances in Parallel Computing, vol. 27, pp. 673–682. IOS Press (2015)
TBB (Intel Threading Building Blocks). In: Encyclopedia of Parallel Computing, p. 2029. Springer (2011)
The Eclipse Foundation.: Eclipse—an open development platform (2009). http://www.eclipse.org
Yu, Y., Wang, Y., Mylopoulos, J., Liaskos, S., Lapouchnian, A., do Prado Leite, J.C.S.: Reverse engineering goal models from legacy code. In: 13th IEEE International Conference on Requirements Engineering (RE 2005), 29 August–2 September 2005, Paris, France, pp. 363–372. IEEE Computer Society (2005)