Abstract

Principal component analysis (PCA) is a widely used mathematical technique for dimensionality reduction that works by identifying a smaller number of linearly uncorrelated variables (principal components) to explain the variation found in a data set. PCA as a technique has applications in almost all engineering disciplines including financial engineering. In this paper, we focus on PCA computations that arise in a (financial) real time risk management system (RTRM). A RTRM system has to simultaneously compute risk measures such as value-at-risk (VaR) or haircuts for large portfolios on a frequent basis. Typically, the portfolios on which these risk measures are computed, consist of thousands of financial assets. A general framework involves computation of the correlation matrix for the assets in the portfolio followed by the application of PCA to the correlation matrix and using the obtained principal components to eventually estimate the desired risk measure. In the case of large financial institutions, there could be several such portfolios corresponding to various clients and hence PCA has to be performed simultaneously on different correlation matrices. This scenario calls for an efficient high performance implementation and scheduling of concurrent PCA requests. This exposition addresses the stated scenario by proposing a solution for concurrent processing of multiple PCA requests. Concurrent processing of multiple PCA requests is achieved through suitable load distribution and scheduling mechanisms leading to optimal utilization of compute resources. The results are demonstrated on various high performance architectures including GP-GPUs and Intel based multi-core architectures. An important component of this work is a GPU based solution for PCA using CUDA streams.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call