{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:54:14Z","timestamp":1750308854532,"version":"3.41.0"},"reference-count":41,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2010,11,1]],"date-time":"2010-11-01T00:00:00Z","timestamp":1288569600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Reconfigurable Technol. Syst."],"published-print":{"date-parts":[[2010,11]]},"abstract":"<jats:p>\n            High-Performance Reconfigurable Computers (HPRCs) consist of one or more standard microprocessors tightly-coupled with one or more reconfigurable FPGAs. HPRCs have been shown to provide good speedups and good cost\/performance ratios, but not necessarily ease of use, leading to a slow acceptance of this technology. HPRCs introduce new design challenges, such as the lack of portability across platforms, incompatibilities with legacy code, users reluctant to change their code base, a prolonged learning curve, and the need for a system-level Hardware\/Software co-design development flow. This article presents the evolution and current work on TMD-MPI, which started as an MPI-based programming model for Multiprocessor Systems-on-Chip implemented in FPGAs, and has now evolved to include multiple X86 processors. TMD-MPI is shown to address current design challenges in HPRC usage, suggesting that the MPI standard has enough syntax and semantics to program these new types of parallel architectures. Also presented is the\n            <jats:italic>TMD-MPI Ecosystem<\/jats:italic>\n            , which consists of research projects and tools that are developed around TMD-MPI to further improve HPRC usability. Finally, we present preliminary communication performance measurements.\n          <\/jats:p>","DOI":"10.1145\/1862648.1862652","type":"journal-article","created":{"date-parts":[[2010,11,16]],"date-time":"2010-11-16T14:07:19Z","timestamp":1289916439000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":26,"title":["MPI as a Programming Model for High-Performance Reconfigurable Computers"],"prefix":"10.1145","volume":"3","author":[{"given":"Manuel","family":"Salda\u00f1a","sequence":"first","affiliation":[{"name":"Arches Computing Systems"}]},{"given":"Arun","family":"Patel","sequence":"additional","affiliation":[{"name":"Arches Computing Systems"}]},{"given":"Christopher","family":"Madill","sequence":"additional","affiliation":[{"name":"University of Toronto"}]},{"given":"Daniel","family":"Nunes","sequence":"additional","affiliation":[{"name":"University of Toronto"}]},{"given":"Danyao","family":"Wang","sequence":"additional","affiliation":[{"name":"University of Toronto"}]},{"given":"Paul","family":"Chow","sequence":"additional","affiliation":[{"name":"University of Toronto"}]},{"given":"Ralph","family":"Wittig","sequence":"additional","affiliation":[{"name":"Xilinx, San Jose"}]},{"given":"Henry","family":"Styles","sequence":"additional","affiliation":[{"name":"Xilinx, San Jose"}]},{"given":"Andrew","family":"Putnam","sequence":"additional","affiliation":[{"name":"Xilinx, San Jose"}]}],"member":"320","published-online":{"date-parts":[[2010,11]]},"reference":[{"volume-title":"Proceedings of the MAPLD International Conference.","author":"Aggarwal V.","key":"e_1_2_1_1_1"},{"unstructured":"Amirix Systems Inc. 2009. http:\/\/www.amirix.com\/ {Accessed 3\/09}. Amirix Systems Inc. 2009. http:\/\/www.amirix.com\/ {Accessed 3\/09}.","key":"e_1_2_1_2_1"},{"volume-title":"Proceedings of the 9th International Workshop on High-Level Parallel Programming Models and Supportive Environments. 52--60","author":"Callahan D.","key":"e_1_2_1_3_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_4_1","DOI":"10.1109\/MDT.2005.30"},{"unstructured":"Comis C. 2005. A high-speed inter-process communication architecture for FPGA-based hardware acceleration of molecular dynamics. M.S. thesis University of Toronto. Comis C. 2005. A high-speed inter-process communication architecture for FPGA-based hardware acceleration of molecular dynamics. M.S. thesis University of Toronto.","key":"e_1_2_1_5_1"},{"unstructured":"Cray Inc. 2005. CRAY XD1 FPGA Development. CRAY Inc. pp. 9-11 pp. 63-66. Cray Inc. 2005. CRAY XD1 FPGA Development . CRAY Inc. pp. 9-11 pp. 63-66.","key":"e_1_2_1_6_1"},{"unstructured":"Cray Inc. 2009a. http:\/\/www.cray.com\/ {Accessed 3\/09}. Cray Inc. 2009a. http:\/\/www.cray.com\/ {Accessed 3\/09}.","key":"e_1_2_1_7_1"},{"unstructured":"Cray Inc. 2009b. Cray XT5h Supercomputer Brochure. http:\/\/www.cray.com\/Assets\/PDF\/products\/xt\/CrayXT5hBrochure.pdf {Accessed 3\/09}. Cray Inc. 2009b. Cray XT5h Supercomputer Brochure. http:\/\/www.cray.com\/Assets\/PDF\/products\/xt\/CrayXT5hBrochure.pdf {Accessed 3\/09}.","key":"e_1_2_1_8_1"},{"unstructured":"DRC Computer. 2009. http:\/\/www.drccomputer.com\/ {Accessed 3\/09}. DRC Computer . 2009. http:\/\/www.drccomputer.com\/ {Accessed 3\/09}.","key":"e_1_2_1_9_1"},{"volume-title":"Proceedings of the 2nd International Workshop on Productivity and Performance in High-End Computing (P-PHEC).","author":"Ebcioglu K.","key":"e_1_2_1_10_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_11_1","DOI":"10.1007\/11752578_29"},{"doi-asserted-by":"publisher","key":"e_1_2_1_12_1","DOI":"10.1016\/0167-8191(96)00024-5"},{"unstructured":"HyperTransport Consortium. 2009. http:\/\/www.hypertransport.org {Accessed 3\/09}. HyperTransport Consortium . 2009. http:\/\/www.hypertransport.org {Accessed 3\/09}.","key":"e_1_2_1_13_1"},{"unstructured":"Impulse Accelerated Technologies Inc. 2009. http:\/\/www.impulsec.com {Accessed 3\/09}. Impulse Accelerated Technologies Inc. 2009. http:\/\/www.impulsec.com {Accessed 3\/09}.","key":"e_1_2_1_14_1"},{"unstructured":"Intel. 2009a. Intel Quick Path Architecture (White Paper). http:\/\/www.intel.com\/technology\/quickpath\/whitepaper.pdf {Accessed 3\/09}. Intel . 2009a. Intel Quick Path Architecture (White Paper). http:\/\/www.intel.com\/technology\/quickpath\/whitepaper.pdf {Accessed 3\/09}.","key":"e_1_2_1_15_1"},{"unstructured":"Intel. 2009b. Intel QuickAssist Technology AAL (White Paper). http:\/\/download.intel.com\/technology\/platforms\/quickassist\/quickassist_aal_whitepaper.pdf {Accessed 3\/09}. Intel . 2009b. Intel QuickAssist Technology AAL (White Paper). http:\/\/download.intel.com\/technology\/platforms\/quickassist\/quickassist_aal_whitepaper.pdf {Accessed 3\/09}.","key":"e_1_2_1_16_1"},{"unstructured":"Intel Corp. 2009. http:\/\/www.intel.com\/ {Accessed 3\/09}. Intel Corp. 2009. http:\/\/www.intel.com\/ {Accessed 3\/09}.","key":"e_1_2_1_17_1"},{"unstructured":"Jerraya A. and Wolf W. 2004. Multiprocessor Systems-on-Chip. Morgan-Kaufmannn. Jerraya A. and Wolf W. 2004. Multiprocessor Systems-on-Chip . Morgan-Kaufmannn.","key":"e_1_2_1_18_1"},{"unstructured":"Mentor Graphics. 2009. http:\/\/www.mentor.com\/ {Accessed 3\/09}. Mentor Graphics . 2009. http:\/\/www.mentor.com\/ {Accessed 3\/09}.","key":"e_1_2_1_19_1"},{"unstructured":"Mitrionics Inc. 2009. http:\/\/www.mitrionics.com {Accessed 3\/09}. Mitrionics Inc. 2009. http:\/\/www.mitrionics.com {Accessed 3\/09}.","key":"e_1_2_1_20_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_21_1","DOI":"10.1109\/MC.2007.110"},{"unstructured":"MPI Parallel Environment. 2008. http:\/\/www-unix.mcs.anl.gov\/perfvis\/software\/MPE\/index.html. MPI Parallel Environment . 2008. http:\/\/www-unix.mcs.anl.gov\/perfvis\/software\/MPE\/index.html.","key":"e_1_2_1_22_1"},{"unstructured":"Nallatech Inc. 2009. http:\/\/www.nallatech.com\/ {Accessed 3\/09}. Nallatech Inc. 2009. http:\/\/www.nallatech.com\/ {Accessed 3\/09}.","key":"e_1_2_1_23_1"},{"volume-title":"Proceedings of the IEEE International Conference on Field-Programmable Technology.","author":"Nunes D.","key":"e_1_2_1_24_1"},{"unstructured":"OpenFPGA 2009a. OpenFPGA. http:\/\/www.openfpga.org\/ {Accessed 3\/09}.  OpenFPGA 2009a. OpenFPGA. http:\/\/www.openfpga.org\/ {Accessed 3\/09}.","key":"e_1_2_1_25_1"},{"unstructured":"OpenFPGA 2009b. OpenFPGA GenAPI version 0.4 Draft for Comment. http:\/\/www.openfpga.org\/pages\/Standards.aspx {Accessed 3\/09}.  OpenFPGA 2009b. OpenFPGA GenAPI version 0.4 Draft for Comment. http:\/\/www.openfpga.org\/pages\/Standards.aspx {Accessed 3\/09}.","key":"e_1_2_1_26_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_27_1","DOI":"10.1109\/FCCM.2006.17"},{"unstructured":"Project Fortress Community. 2009. http:\/\/projectfortress.sun.com\/Projects\/Community\/ {Accessed 3\/09}. Project Fortress Community . 2009. http:\/\/projectfortress.sun.com\/Projects\/Community\/ {Accessed 3\/09}.","key":"e_1_2_1_28_1"},{"unstructured":"Salda\u00f1a M. 2006. A parallel programming model for a multi-FPGA multiprocessor machine. M.S. dissertation University of Toronto. Salda\u00f1a M. 2006. A parallel programming model for a multi-FPGA multiprocessor machine. M.S. dissertation University of Toronto.","key":"e_1_2_1_29_1"},{"volume-title":"Proceedings of the IEEE 16th International Conference on Field-Programmable Logic and Applications.","author":"Salda\u00f1a M.","key":"e_1_2_1_30_1"},{"volume-title":"Proceedings of the IEEE 3rd International Conference on Reconfigurable Computing and FPGAs.","author":"Salda\u00f1a M.","key":"e_1_2_1_31_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_32_1","DOI":"10.1109\/ReConFig.2008.10"},{"unstructured":"SGI. 2008a. Reconfigurable Application-Specific Computing User\u2019s Guide. SGI. 9--12; 223--244. SGI . 2008a. Reconfigurable Application-Specific Computing User\u2019s Guide . SGI. 9--12; 223--244.","key":"e_1_2_1_33_1"},{"unstructured":"SGI. 2008b. SGI RASC RC100 Blade. http:\/\/www.sgi.com\/pdfs\/3920.pdf {Accessed 3\/09}. SGI . 2008b. SGI RASC RC100 Blade. http:\/\/www.sgi.com\/pdfs\/3920.pdf {Accessed 3\/09}.","key":"e_1_2_1_34_1"},{"unstructured":"SGI. 2009. http:\/\/www.sgi.com\/ {Accessed 3\/09}. SGI . 2009. http:\/\/www.sgi.com\/ {Accessed 3\/09}.","key":"e_1_2_1_35_1"},{"unstructured":"SRC Computers Inc. 2009. http:\/\/www.srccomp.com\/ {Accessed 3\/09}. SRC Computers Inc. 2009. http:\/\/www.srccomp.com\/ {Accessed 3\/09}.","key":"e_1_2_1_36_1"},{"unstructured":"Synfora Inc. 2009. http:\/\/www.synfora.com {Accessed 3\/09}. Synfora Inc. 2009. http:\/\/www.synfora.com {Accessed 3\/09}.","key":"e_1_2_1_37_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_38_1","DOI":"10.1145\/169627.169855"},{"unstructured":"Wang D. 2008. An automated flow to generate hardware computing nodes from C for an FPGA-based MPI computing network. Engineering science undergraduate dissertation University of Toronto. Wang D. 2008. An automated flow to generate hardware computing nodes from C for an FPGA-based MPI computing network. Engineering science undergraduate dissertation University of Toronto.","key":"e_1_2_1_39_1"},{"unstructured":"Xtreme Data Inc. 2009. http:\/\/www.xtremedatainc.com\/ {Accessed 3\/09}. Xtreme Data Inc. 2009. http:\/\/www.xtremedatainc.com\/ {Accessed 3\/09}.","key":"e_1_2_1_40_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_41_1","DOI":"10.1177\/109434209901300310"}],"container-title":["ACM Transactions on Reconfigurable Technology and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1862648.1862652","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1862648.1862652","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T21:14:51Z","timestamp":1750281291000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1862648.1862652"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2010,11]]},"references-count":41,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2010,11]]}},"alternative-id":["10.1145\/1862648.1862652"],"URL":"https:\/\/doi.org\/10.1145\/1862648.1862652","relation":{},"ISSN":["1936-7406","1936-7414"],"issn-type":[{"type":"print","value":"1936-7406"},{"type":"electronic","value":"1936-7414"}],"subject":[],"published":{"date-parts":[[2010,11]]},"assertion":[{"value":"2009-03-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2009-08-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2010-11-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}