The TMD is a heterogeneous multi-FPGA system that uses the Message Passing Interface (MPI) programming model to build systems comprised of processors and hardware engines implemented on FPGAs, all interacting using MPI messages. This thesis implements a profiling system that can monitor communication calls and user states. The data is compatible with Jumpshot, a visualizer already used for software-based MPI applications. We demonstrate the capability of the profiler on a number of applications and show that the profiler can be used for multiple FPGAs across multiple boards.ii Acknowledgements First and foremost I would like to thank my supervisor Professor Paul Chow for his guidance and technical advice which were of highest value throughout the course of this MASc. I would also like to thank Emanuel and Alex, for their suggestions and conversations; Manuel, Arun and Chris for their expertise advice; and all the remaining group members: Andrew, Danny, David, Ali, Keith, Daniel Ly, Danyao, Richard, Tom, Mike, Nasim, and Matt for their support. Last but not the least, Professor João Cardoso who first contacted the University of Toronto and provided guidance throughout all my undergrad in Portugal.iii