Loop profiling tool for hpc code inspection as an efficient method of FPGA based acceleration

Marcin Pietroń; Paweł Russek; Kazimierz Wiatr

International Journal of Applied Mathematics and Computer Science (2010)

  • Volume: 20, Issue: 3, page 581-589
  • ISSN: 1641-876X

Abstract

top
This paper presents research on FPGA based acceleration of HPC applications. The most important goal is to extract a code that can be sped up. A major drawback is the lack of a tool which could do it. HPC applications usually consist of a huge amount of a complex source code. This is one of the reasons why the process of acceleration should be as automated as possible. Another reason is to make use of HLLs (High Level Languages) such as Mitrion-C (Mohl, 2006). HLLs were invented to make the development of HPRC applications faster. Loop profiling is one of the steps to check if the insertion of an HLL to an existing HPC source code is possible to gain acceleration of these applications. Hence the most important step to achieve acceleration is to extract the most time consuming code and data dependency, which makes the code easier to be pipelined and parallelized. Data dependency also gives information on how to implement algorithms in an FPGA circuit with minimal initialization of it during the execution of algorithms.

How to cite

top

Marcin Pietroń, Paweł Russek, and Kazimierz Wiatr. "Loop profiling tool for hpc code inspection as an efficient method of FPGA based acceleration." International Journal of Applied Mathematics and Computer Science 20.3 (2010): 581-589. <http://eudml.org/doc/208009>.

@article{MarcinPietroń2010,
abstract = {This paper presents research on FPGA based acceleration of HPC applications. The most important goal is to extract a code that can be sped up. A major drawback is the lack of a tool which could do it. HPC applications usually consist of a huge amount of a complex source code. This is one of the reasons why the process of acceleration should be as automated as possible. Another reason is to make use of HLLs (High Level Languages) such as Mitrion-C (Mohl, 2006). HLLs were invented to make the development of HPRC applications faster. Loop profiling is one of the steps to check if the insertion of an HLL to an existing HPC source code is possible to gain acceleration of these applications. Hence the most important step to achieve acceleration is to extract the most time consuming code and data dependency, which makes the code easier to be pipelined and parallelized. Data dependency also gives information on how to implement algorithms in an FPGA circuit with minimal initialization of it during the execution of algorithms.},
author = {Marcin Pietroń, Paweł Russek, Kazimierz Wiatr},
journal = {International Journal of Applied Mathematics and Computer Science},
keywords = {HPC; HPRC (High Performance Reconfigurable Computing); loop profiling; Mitrion-C; DFG (Data Flow Graph)},
language = {eng},
number = {3},
pages = {581-589},
title = {Loop profiling tool for hpc code inspection as an efficient method of FPGA based acceleration},
url = {http://eudml.org/doc/208009},
volume = {20},
year = {2010},
}

TY - JOUR
AU - Marcin Pietroń
AU - Paweł Russek
AU - Kazimierz Wiatr
TI - Loop profiling tool for hpc code inspection as an efficient method of FPGA based acceleration
JO - International Journal of Applied Mathematics and Computer Science
PY - 2010
VL - 20
IS - 3
SP - 581
EP - 589
AB - This paper presents research on FPGA based acceleration of HPC applications. The most important goal is to extract a code that can be sped up. A major drawback is the lack of a tool which could do it. HPC applications usually consist of a huge amount of a complex source code. This is one of the reasons why the process of acceleration should be as automated as possible. Another reason is to make use of HLLs (High Level Languages) such as Mitrion-C (Mohl, 2006). HLLs were invented to make the development of HPRC applications faster. Loop profiling is one of the steps to check if the insertion of an HLL to an existing HPC source code is possible to gain acceleration of these applications. Hence the most important step to achieve acceleration is to extract the most time consuming code and data dependency, which makes the code easier to be pipelined and parallelized. Data dependency also gives information on how to implement algorithms in an FPGA circuit with minimal initialization of it during the execution of algorithms.
LA - eng
KW - HPC; HPRC (High Performance Reconfigurable Computing); loop profiling; Mitrion-C; DFG (Data Flow Graph)
UR - http://eudml.org/doc/208009
ER -

References

top
  1. Bennett, D., Dellinger, E., Mason, J. and Sundarajan, P. (2006). An FPGA-oriented target language for HLL compilation, Reconfigurable Systems Summer Institute, RSSI 2006, Urbana, IL, USA. 
  2. Deng, L., Kim, J.S., Mangalagiri, P., Irick, K., Sobti, K., Kandemir, M., Narayanan, V., Chakrabarti, Ch., Pitsianis, N. and Sun, X. (2009). An automated framework for accelerating numerical algorithms on reconfigurable platform using algorithmic/architectural optimization, IEEE Transactions on Computers 58(12): 1654-1667. 
  3. Gasper, P., Herbst, C., McCough, J., Rickett, C. and Stubbendieck, G. (2003). Automatic parallelization of sequential C code, Midwest Instruction and Computing Symposium, Duluth, MN, USA. 
  4. Gong, W.,Wang, G. and Kastner, R. (2004). A high performance application representation for reconfigurable systems, Conference on Engineering of Reconfigurable Systems and Algorithms, ERSA, Las Vegas, NV, USA. 
  5. Kindratenko, V., Brunner, R. and Myers, A. (2007). Mitrion-C application development on SGI Altix 350/RC100, International Symposium on Field Programmable Custom Computing Machines, FCCM 2007, pp. 239-250. 
  6. Kindratenko, V., Myers, A. and Brunner, R. (2006). Exploring coarse- and fine-grain parallelism on a high-performance reconfigurable computer, 2nd Annual Reconfigurable Systems Summer Institute, RSSI 2006, Napa Valley, CA, USA. 
  7. Liu, K., Cameron, Ch. and Sarkady, A. (2008). Using MitrionC to implement floating-point arithmetic on a Cray XD1 supercomputer, DoD HPCMP Users Group Conference, HPCMP-UGC, Urbana, IL, USA, pp. 391-395. 
  8. Memik, S.O., Bozorgzadeh, G., Kastner, R. and Sarrafzadeh, M. (2005). A scheduling algorithm for optimization and planning in high-level synthesis, ACM Transactions on Design Automation of Electronic Systems 10(1). 
  9. Messmer, P. and Bodenner R. (2006). Accelerating scentific applications using FPGAs, XCell Journal 10(1): 33-57. 
  10. Mohl, S. (2006). The Mitrion-C programming language, Mitrionics Inc., Second Quarter, pp. 70-73, http://www.mitrion.com. 
  11. Moseley, T., Grunwald, D., Connors, A., Ramanujam, R., Tovinkere, V. and Peri R. (2006). LoopProf: Dynamic techniques for loop detection and profiling, Proceedings of the 2006 Workshop on Binary Instrumentation and Applications, WBIA, Lund, Sweden. 
  12. Pietroń, M., Wiatr, K. and Russek, P. (2007(a)). Methodology of computing acceleration using reconfigurable logic technology in high performance computing, University of Science and Technology in Cracow Automatica, 2007, pp. 149-156. 
  13. Pietroń, M., Russek, P., Wiatr, K., Jamro, E. and Wielgosz, M. (2007(b)). Two electron integrals calculation accelerated with double precision exp() hardware module, Reconfigurable Systems Summer Institute, RSSI, Urbana, IL, USA. 
  14. Russek, P. and Wiatr, K. (2006). The prospect of computing acceleration using reconfigurable logic technology in huge computational power systems, Proceedings of the IFAC Workshop on Programable Devices and Embedded Systems, PDeS 2006, Brno, Czech Republic, pp. 44-49. Zbl1173.68523

NotesEmbed ?

top

You must be logged in to post comments.

To embed these notes on your page include the following JavaScript code on your page where you want the notes to appear.

Only the controls for the widget will be shown in your chosen language. Notes will be shown in their authored language.

Tells the widget how many notes to show per page. You can cycle through additional notes using the next and previous controls.

    
                

Note: Best practice suggests putting the JavaScript code just before the closing </body> tag.