Sign In to Follow Application
View All Documents & Correspondence

Concurrent Principal Component Analysis Computation

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.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
16 March 2015
Publication Number
13/2017
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
iprdel@lakshmisri.com
Parent Application
Patent Number
Legal Status
Grant Date
2023-11-16
Renewal Date

Applicants

TATA CONSULTANCY SERVICES LIMITED
Nirmal Building, 9th Floor, Nariman Point, Mumbai, Maharashtra 400021, India

Inventors

1. SUBRAMANIAN, Easwara Naga
GS1-21, TCS Innovation Labs, Tata Consultancy Services, No 1, Software Units Layout, Madhapur, Hyderabad, Telangana 500081, India
2. KALELE, Amit
S2 Poorna, Tata Consultancy Services, Sahayadri Park, Rajiv Gandhi Infotech Park, Hinjewadi Phase 3 Pune 411057, India
3. JAIN, Anubhav
S2 Poorna, Tata Consultancy Services, Sahayadri Park, Rajiv Gandhi Infotech Park, Hinjewadi Phase 3, Pune 411057, India

Specification

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.

Documents

Application Documents

# 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

Search Strategy

1 searchstrat_23-12-2019.pdf

ERegister / Renewals

3rd: 08 Dec 2023

From 16/03/2017 - To 16/03/2018

4th: 08 Dec 2023

From 16/03/2018 - To 16/03/2019

5th: 08 Dec 2023

From 16/03/2019 - To 16/03/2020

6th: 08 Dec 2023

From 16/03/2020 - To 16/03/2021

7th: 08 Dec 2023

From 16/03/2021 - To 16/03/2022

8th: 08 Dec 2023

From 16/03/2022 - To 16/03/2023

9th: 08 Dec 2023

From 16/03/2023 - To 16/03/2024

10th: 08 Dec 2023

From 16/03/2024 - To 16/03/2025

11th: 12 Mar 2025

From 16/03/2025 - To 16/03/2026