Abstract: A system and method for concurrent principal component analysis (PCA) computation is disclosed. The method includes receiving a plurality of concurrent PCA requests by a server. An input matrix for each of the concurrent PCA requests is computed using a general purpose – graphical processing unit (GP-GPU) by the server. Further, tridiagnolization on the input matrix is performed on each of the concurrent PCA requests by a general purpose-graphical processing unit (GP-GPU) in the server to generate a tridiagonal matrix for each of the concurrent PCA requests. Furthermore, a plurality of eigen values and corresponding eigen vectors are computed for the tridiagonal matrix of each of the concurrent PCA requests by the server and subsequently back transformation of the eigen values and the eigen vectors is performed by the server for each of the concurrent PCA requests to obtain associated principal components.
DESC:CONCURRENT PRINCIPAL COMPONENT ANALYSIS COMPUTATION ,CLAIMS:1. A method for processing concurrent principal component analysis (PCA) computation, comprising:
receiving a plurality of concurrent PCA requests by a server;
computing an input matrix for each of the plurality of concurrent PCA requests by the server;
performing tridiagnolization on the input matrix of each of the plurality of concurrent PCA requests, by a general purpose-graphical processing unit (GP-GPU) in the server, to generate a tridiagonal matrix for each of the plurality of concurrent PCA requests;
computing a plurality of eigen values and a plurality of corresponding eigen vectors for the tridiagonal matrix of each of the plurality of concurrent PCA requests by the server; and
performing back transformation of the eigen values and the eigen vectors, by the server, for each of the plurality of concurrent PCA requests to obtain associated principal components, wherein the back transformation is performed to obtain corresponding eigen values and eigen vectors of the input matrix.
2. The method as claimed in claim 1, further comprising:
assigning the received plurality of concurrent PCA requests to multiple threads utilizing shared resources of the GP-GPU in the server based on availability of the multiple threads.
3. The method as claimed in claim 2, wherein assigning the received plurality of concurrent PCA requests to the multiple threads utilizing shared resources of the GP-GPU in the server, comprises:
assigning each of the plurality of concurrent PCA requests to an available thread in the multiple threads and queuing unassigned PCA requests in a job queue, wherein the available thread in the multiple threads is queued in a worker queue.
4. The method as claimed in claim 3, further comprising:
assigning a first unassigned PCA request in the job queue to a first thread in the worker queue.
5. The method as claimed in claim 2, further comprising:
queuing the received plurality of concurrent PCA requests in multiple job queues based on a size of corresponding PCA request; and
queuing the multiple threads in multiple worker queues based on the size of the job process.
6. The method as claimed in claim 5, wherein assigning the received plurality of concurrent PCA requests to multiple threads, comprises:
assigning a first thread in the worker queue to a first PCA request from the corresponding job queue based on the size of the PCA request and job process.
7. The method as claimed in claim 1, wherein computing the input matrix for each of the plurality of concurrent PCA requests using the GP-GPU in the server comprises;
receiving data associated with a PCA request; and
computing an input matrix for the PCA request based on the received data using the GP-GPU in the server.
8. The method as claimed in claim 1, wherein preforming tridiagnolization on the input matrix of each of the plurality of concurrent PCA requests comprises multiple matrix vector multiplications and multiple vector operations, wherein the multiple vector operations comprise scaling, dot product and symmetric rank 2 updates.
9. The method as claimed in claim 1, wherein the tridiagonal matrix is a matrix having non zero elements in a main diagonal of the matrix, a sub diagonal and a super diagonal of the matrix.
10. A system comprising:
at least one memory storing instructions;
at least one processor communicatively coupled to the at least one memory, wherein the at least one processor configured by the instructions to:
receive a plurality of concurrent PCA requests;
compute an input matrix for each of the plurality of concurrent PCA requests;
receive a tridiagonal matrix for each of the PCA requests based on the input matrix;
compute a plurality of eigen values and a plurality of corresponding eigen vectors for the tridiagonal matrix of each of the plurality of concurrent PCA requests; and
perform back transformation of the eigen values and the eigen vectors for each of the plurality of concurrent PCA requests to obtain associated principal components, wherein the back transformation is performed to obtain corresponding eigen values and eigen vectors of the input matrix
at least one general purpose-graphical processing unit (GP-GPU) communicatively coupled to the at least one memory, wherein the at least one GP-GPU configured by the instructions to:
receive the input matrix from the at least one processor;
perform tridiagnolization on the input matrix of each of the plurality of concurrent PCA requests to generate the tridiagonal matrix for each of the PCA requests; and
send the tridiagonal matrix for each of the PCA requests to the at least one processor.
11. The system as claimed in claim 10, wherein the at least one processor is configured by the instructions to: assign the received plurality of concurrent PCA requests to multiple threads utilizing shared resources of the GP-GPU in the server based on availability of the multiple threads.
12. The system as claimed in claim 11, wherein the at least one processor is configured by the instructions to:
assign each of the plurality of concurrent PCA requests to an available thread in the multiple threads and queuing unassigned PCA requests in a job queue, wherein the available thread in the multiple threads is queued in a worker queue.
13. The system as claimed in claim 12, wherein said at least one processor is configured by the instructions to:
assign a first unassigned PCA request in the job queue to a first thread in the worker queue.
14. The system as claimed in claim 11, wherein said at least one processor is configured by the instructions to:
queue the received plurality of concurrent PCA requests in multiple job queues based on a size of corresponding PCA request; and
queue the multiple threads in multiple worker queues based on the size of the job process.
15. The system as claimed in claim 14, wherein said at least one processor is configured by the instructions to:
assign a first thread in the worker queue is assigned to a first PCA request from the corresponding job queue received by the server based on the size of the PCA request and job process.
16. The system as claimed in claim 10, wherein said at least one processor is configured by the instructions to: compute an input matrix for each of the plurality of concurrent PCA requests using a (GP-GPU) in the server comprises;
receive data associated with a PCA request; and
compute an input matrix for the PCA request based on the received data using the GP-GPU in the server.
17. The system as claimed in claim 10, wherein said at least one processor is configured by the instructions to preform tridiagnolization on the input matrix of each of the plurality of concurrent PCA request comprises a multiple matrix vector multiplications and a multiple vector operations, wherein the multiple vector operations comprise at least one of scaling, dot product and symmetric rank 2 updates.
18. The system as claimed in claim 10, wherein said at least one processor is configured by the instructions to generate the tridiagonal matrix :
a matrix having non zero elements in the main diagonal of the matrix , the sub diagonal and the super diagonal of the matrix.
| # | Name | Date |
|---|---|---|
| 1 | 870-MUM-2015-IntimationOfGrant16-11-2023.pdf | 2023-11-16 |
| 1 | OTHERS [09-03-2016(online)].pdf | 2016-03-09 |
| 2 | 870-MUM-2015-PatentCertificate16-11-2023.pdf | 2023-11-16 |
| 2 | Drawing [09-03-2016(online)].pdf | 2016-03-09 |
| 3 | Description(Complete) [09-03-2016(online)].pdf | 2016-03-09 |
| 3 | 870-MUM-2015-ABSTRACT [26-06-2020(online)].pdf | 2020-06-26 |
| 4 | REQUEST FOR CERTIFIED COPY [14-03-2016(online)].pdf | 2016-03-14 |
| 4 | 870-MUM-2015-CLAIMS [26-06-2020(online)].pdf | 2020-06-26 |
| 5 | Form 3 [25-07-2016(online)].pdf | 2016-07-25 |
| 5 | 870-MUM-2015-DRAWING [26-06-2020(online)].pdf | 2020-06-26 |
| 6 | Form 3 [14-10-2016(online)].pdf | 2016-10-14 |
| 6 | 870-MUM-2015-FER_SER_REPLY [26-06-2020(online)].pdf | 2020-06-26 |
| 7 | Request For Certified Copy-Online.pdf | 2018-08-11 |
| 7 | 870-MUM-2015-OTHERS [26-06-2020(online)].pdf | 2020-06-26 |
| 8 | PD015691IN-SC - SPEC FOR FILING.pdf | 2018-08-11 |
| 8 | 870-MUM-2015-FORM 3 [21-05-2020(online)].pdf | 2020-05-21 |
| 9 | 870-MUM-2015-Information under section 8(2) [19-05-2020(online)].pdf | 2020-05-19 |
| 9 | PD015691IN-SC - FORM 3.pdf | 2018-08-11 |
| 10 | 870-MUM-2015-FER.pdf | 2019-12-26 |
| 10 | PD015691IN-SC - DRAWINGS FOR FILING.pdf | 2018-08-11 |
| 11 | 870-MUM-2015-Correspondence-040615.pdf | 2018-08-11 |
| 11 | ABSTRACT1.JPG | 2018-08-11 |
| 12 | 870-MUM-2015-Correspondence-150915.pdf | 2018-08-11 |
| 12 | 870-MUM-2015-Power of Attorney-040615.pdf | 2018-08-11 |
| 13 | 870-MUM-2015-Form 1-150915.pdf | 2018-08-11 |
| 14 | 870-MUM-2015-Correspondence-150915.pdf | 2018-08-11 |
| 14 | 870-MUM-2015-Power of Attorney-040615.pdf | 2018-08-11 |
| 15 | 870-MUM-2015-Correspondence-040615.pdf | 2018-08-11 |
| 15 | ABSTRACT1.JPG | 2018-08-11 |
| 16 | 870-MUM-2015-FER.pdf | 2019-12-26 |
| 16 | PD015691IN-SC - DRAWINGS FOR FILING.pdf | 2018-08-11 |
| 17 | PD015691IN-SC - FORM 3.pdf | 2018-08-11 |
| 17 | 870-MUM-2015-Information under section 8(2) [19-05-2020(online)].pdf | 2020-05-19 |
| 18 | 870-MUM-2015-FORM 3 [21-05-2020(online)].pdf | 2020-05-21 |
| 18 | PD015691IN-SC - SPEC FOR FILING.pdf | 2018-08-11 |
| 19 | Request For Certified Copy-Online.pdf | 2018-08-11 |
| 19 | 870-MUM-2015-OTHERS [26-06-2020(online)].pdf | 2020-06-26 |
| 20 | Form 3 [14-10-2016(online)].pdf | 2016-10-14 |
| 20 | 870-MUM-2015-FER_SER_REPLY [26-06-2020(online)].pdf | 2020-06-26 |
| 21 | Form 3 [25-07-2016(online)].pdf | 2016-07-25 |
| 21 | 870-MUM-2015-DRAWING [26-06-2020(online)].pdf | 2020-06-26 |
| 22 | REQUEST FOR CERTIFIED COPY [14-03-2016(online)].pdf | 2016-03-14 |
| 22 | 870-MUM-2015-CLAIMS [26-06-2020(online)].pdf | 2020-06-26 |
| 23 | Description(Complete) [09-03-2016(online)].pdf | 2016-03-09 |
| 23 | 870-MUM-2015-ABSTRACT [26-06-2020(online)].pdf | 2020-06-26 |
| 24 | Drawing [09-03-2016(online)].pdf | 2016-03-09 |
| 24 | 870-MUM-2015-PatentCertificate16-11-2023.pdf | 2023-11-16 |
| 25 | 870-MUM-2015-IntimationOfGrant16-11-2023.pdf | 2023-11-16 |
| 25 | OTHERS [09-03-2016(online)].pdf | 2016-03-09 |
| 1 | searchstrat_23-12-2019.pdf |