Computer implemented method, system, and computer program (asynchronous modeled system to perform graph analytics on fault-tolerant environment)

The method addresses the computational challenges of tracing large adjacency matrices by iteratively calculating a trace approximation using random vectors and diagonal matrices, resulting in efficient and cost-effective processing.

JP2025090013APending Publication Date: 2025-06-16INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024201157
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-04
Filing Date
2024-11-18
Publication Date
2025-06-16

AI Technical Summary

Technical Problem

Calculating the trace of an implicitly defined matrix A is computationally expensive, especially for large-scale graphs, as existing methods involve direct calculations or full matrix diagonalization, which are time-consuming and memory-intensive.

Method used

A computer-implemented method for calculating a trace approximation of an adjacency matrix involves retrieving the adjacency matrix, determining a random vector, generating a matrix vector, selecting a subset of entries, forming a diagonal random matrix from canonical outer products, and iteratively calculating the trace approximation using these components.

Benefits of technology

This method reduces computational power and storage requirements, enabling efficient processing of large adjacency matrices and providing a quick and accurate trace approximation, while also being resource-optimized and cost-effective.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025090013000001_ABST
    Figure 2025090013000001_ABST
Patent Text Reader

Abstract

To disclose a system for randomized trace approximation calculation based on asynchronous computing architecture.SOLUTION: The system retrieves an adjacency matrix associated with a complex graph. The system determines a random vector based on the retrieved adjacency matrix. The system generates a matrix-vector based on the adjacency matrix and the random vector. The system determines a first set of natural numbers based on the first dimension of the adjacency matrix. The system selects a subset of entries from the generated matrix-vector based on the determined first set of natural numbers. The system determines a diagonal random matrix based on a summation of canonical outer products formed by the selected subset of entries. The system calculates a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries and stores the calculated trace approximation of the adjacency matrix.SELECTED DRAWING: Figure 8
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the trace of approximate calculations, and more specifically, to randomized trace approximate calculations based on an asynchronous computing architecture.

[0002] With the progress in the fields of computer science and linear algebra, many real-world problems in different fields such as, but not limited to, network and telecommunications, transportation and logistics, epidemiology, computer science and information technology, biology and genetics, finance, circuit design, energy networks and image processing and computer vision, are now framed as graph theory problems where the real-world problems are represented by graphs. These graphs are mathematical structures composed of nodes (vertices) and edges connecting these nodes. These graphs provide a flexible framework for modeling, analyzing, and solving real-world problems. These graphs may be represented in matrix form, and different operations can be performed on the matrices to solve real-world problems. One such operation is called matrix trace estimation.

Summary of the Invention

Problems to be Solved by the Invention

[0003] Conventionally, calculating the trace of an implicitly defined matrix A is computationally expensive, especially for large-scale graphs. Existing methods typically involve either direct calculations that can be time-consuming for dense graphs or full matrix diagonalization that is computationally intensive and memory-demanding.

Means for Solving the Problems

[0004] According to one embodiment of the present disclosure, a computer-implemented method for calculating a trace approximation of an adjacency matrix is described. The computer-implemented method comprises a step of retrieving, by a computer, an adjacency matrix associated with a complex graph. The retrieved adjacency matrix may be of a first dimension. The computer-implemented method further comprises a step of determining, by the computer, a random vector based on the retrieved adjacency matrix. The random vector may have an expected value of zero. The computer-implemented method further comprises a step of generating, by the computer, a matrix vector based on the retrieved adjacency matrix and the determined random vector. The computer-implemented method further comprises a step of determining, by the computer, a first set of natural numbers based on the first dimension of the retrieved adjacency matrix. The total number of elements within the determined first set of natural numbers may be smaller than the first dimension of the retrieved adjacency matrix. The computer-implemented method further comprises a step of selecting, by the computer, a subset of entries from the generated matrix vector based on the determined first set of natural numbers. The computer-implemented method further comprises a step of determining, by the computer, a diagonal random matrix based on the sum of the canonical outer products formed by the selected subset of entries. The computer-implemented method further comprises a step of calculating, by the computer, a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries, and a step of storing, by the computer, the calculated trace approximation of the adjacency matrix.

[0005] According to one or more embodiments of the present disclosure, a system for calculating a trace approximation of an adjacency matrix is described. A computer executes a method for calculating a trace approximation of an adjacency matrix. The method comprises retrieving an adjacency matrix associated with a complex graph. The retrieved adjacency matrix may be of a first dimension. The method further comprises determining a random vector based on the retrieved adjacency matrix. The random vector may have an expected value of zero. The method further comprises generating a matrix vector based on the retrieved adjacency matrix and the determined random vector. The method further comprises determining a first set of natural numbers based on the first dimension of the retrieved adjacency matrix. The total number of elements within the determined first set of natural numbers may be less than the first dimension of the retrieved adjacency matrix. The method further comprises selecting a subset of entries from the generated matrix vector based on the determined first set of natural numbers. The method further comprises determining a diagonal random matrix based on the sum of the canonical outer products formed by the selected subset of entries. The method further comprises calculating a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries, and storing the calculated trace approximation of the adjacency matrix.

[0006] According to one or more embodiments of the present disclosure, a computer program product for calculating a trace approximation of an adjacency matrix is described. The computer program product includes a computer-readable storage medium having embodied program instructions, the program instructions being executable by a system to cause the system to perform a procedure of retrieving an adjacency matrix associated with a complex graph. The retrieved adjacency matrix may be of a first dimension. The program instructions further include a procedure for a computer to determine a random vector based on the retrieved adjacency matrix. The random vector may have an expected value of zero. The program instructions further include a procedure for a computer to generate a matrix vector based on the retrieved adjacency matrix and the determined random vector. The program instructions further include a procedure for determining a first set of natural numbers based on a first dimension of the retrieved adjacency matrix. The total number of elements within the determined first set of natural numbers may be less than the first dimension of the retrieved adjacency matrix. The program instructions further include a procedure for selecting a subset of entries from the generated matrix vector based on the determined first set of natural numbers. The program instructions further include a procedure for determining a diagonal random matrix based on a sum of canonical outer products formed by the selected subset of entries. The program instructions further include a procedure for calculating a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries, and a procedure for storing the calculated trace approximation of the adjacency matrix.

[0007] According to one or more embodiments of the present disclosure, a system for calculating a trace approximation of an adjacency matrix is described. A computer executes a method for calculating a trace approximation of an adjacency matrix. The method comprises retrieving an adjacency matrix associated with a complex graph. The retrieved adjacency matrix may be of a first dimension. The system determines at least one trigger point based on at least one of the computing power of the system or the detection of one or more obstacles associated with one or more computations performed by the system. The method further comprises determining a random vector based on the retrieved adjacency matrix and the determined at least one trigger point. The random vector may have an expected value of zero. The method further comprises generating a matrix vector based on the retrieved adjacency matrix and the determined random vector. The method further comprises determining a first set of natural numbers based on the first dimension of the retrieved adjacency matrix. The total number of elements within the determined first set of natural numbers may be less than the first dimension of the retrieved adjacency matrix. The method further comprises selecting a subset of entries from the generated matrix vector based on the determined first set of natural numbers. The method further comprises determining a diagonal random matrix based on the sum of the canonical outer products formed by the selected subset of entries. The method further comprises calculating a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries, and storing the calculated trace approximation of the adjacency matrix.

[0008] According to one embodiment of the present disclosure, a computer-implemented method for calculating a trace approximation of an adjacency matrix is described. The computer-implemented method comprises the step of retrieving, by a computer, an adjacency matrix associated with a complex graph. The retrieved adjacency matrix may be of a first dimension. The computer-implemented method further comprises the step of determining, by the computer, at least one trigger point based on at least one of the computing power of the computer or the detection of one or more obstacles associated with one or more computations performed by the computer. The computer-implemented method further comprises the step of determining, by the computer, a random vector based on the retrieved adjacency matrix and the determined at least one trigger point. The random vector may have an expected value of zero. The computer-implemented method further comprises the step of generating, by the computer, a matrix vector based on the retrieved adjacency matrix and the determined random vector. The computer-implemented method further comprises the step of determining, by the computer, a first set of natural numbers based on the first dimension of the retrieved adjacency matrix. The total number of elements within the determined first set of natural numbers may be less than the first dimension of the retrieved adjacency matrix. The computer-implemented method further comprises the step of selecting, by the computer, a subset of entries from the generated matrix vector based on the determined first set of natural numbers. The computer-implemented method further comprises the step of determining, by the computer, a diagonal random matrix based on the sum of the canonical outer products formed by the selected subset of entries. The computer-implemented method further comprises the step of calculating, by the computer, a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries, and the step of storing, by the computer, the calculated trace approximation of the adjacency matrix.

[0009] Some embodiments of the present disclosure observe only a random row subset of the adjacency matrix (A) for each sample of the random vector (x), thereby obtaining a quadratic form x TDescribe the application of a randomized trace estimator to an asynchronous computing environment where Ax is partially computed. The disclosed asynchronous framework treats the number of rows and the subset of rows observed for each sample as random variables, and our theoretical analysis has established the variance values of the randomized estimators for Rademacher and Gaussian samples.

[0010] Additional technical features and benefits are realized through the technology of the present disclosure. Embodiments and aspects of the present disclosure are described in detail herein and are considered part of the claimed subject matter. For a better understanding, please refer to the detailed description and the drawings.

Brief Description of the Drawings

[0011] The following description provides details of the preferred embodiments with reference to the following drawings.

[0012]

Figure 1

[0013]

Figure 2

[0014]

Figure 3

[0015]

Figure 4A

[0016]

Figure 4B

[0017]

Figure 5

[0018]

Figure 6

[0019]

Figure 7

[0020]

Figure 8

[0021]

Figure 9

DETAILED DESCRIPTION OF THE INVENTION

[0022] According to one aspect of the present disclosure, a computer-implemented method for calculating a trace approximation of an adjacency matrix is provided. The computer-implemented method includes a step of retrieving, by a computer, an adjacency matrix associated with a complex graph. The retrieved adjacency matrix may be of a first dimension. The computer-implemented method further comprises a step of determining, by the computer, a random vector based on the retrieved adjacency matrix. The random vector may be sampled based on one of a Rademacher distribution or a Gaussian distribution, and may have an expected value and a variance value of zero. The computer-implemented method further comprises a step of generating, by the computer, a matrix vector based on the retrieved adjacency matrix and the determined random vector. The computer-implemented method further comprises a step of determining, by the computer, a first set of natural numbers based on the first dimension of the retrieved adjacency matrix. The total number of elements within the determined first set of natural numbers may be smaller than the first dimension of the retrieved adjacency matrix. The computer-implemented method further comprises a step of selecting, by the computer, a subset of entries from the generated matrix vector based on the determined first set of natural numbers. The computer-implemented method further comprises a step of determining, by the computer, a diagonal random matrix based on the sum of the canonical outer products formed by the selected subset of entries. The computer-implemented method further comprises a step of calculating, by the computer, a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries. Specifically, the computer-implemented method includes a step of repeatedly selecting, by the computer, a subset of entries from the generated matrix vector based on the determined first set of natural numbers. The computer-implemented method further comprises a step of repeatedly determining, by the computer, a diagonal random matrix based on the sum of the canonical outer products formed by the corresponding subset of entries. The computer-implemented method further comprises a step of calculating, by the computer, a trace approximation of the adjacency matrix based on the average of a set of intermediate results obtained based on the repeated selection of the subset of entries and the repeated determination of the diagonal random matrix.The computer-implemented method further comprises a step of storing, by a computer, a calculated trace approximation of an adjacency matrix. By selecting a subset of entries from a matrix-vector product and by executing iterative calculations in parallel, the computational power and storage requirements can be reduced. Thereby, efficient processing of an adjacency matrix having a very large dimension for calculating a corresponding trace estimate can be made possible. Due to the parallel processing of a limited set of entries, the disclosed computer-implemented method can calculate the randomized trace of an adjacency matrix quickly and efficiently. This can further lead to resource optimization and cost savings. Furthermore, it is due to the iterative selection of a subset of entries and further the iterative determination of a diagonal random matrix that includes (or differentiates) the variation (or difference) of natural numbers and even averages to calculate the trace approximation of an adjacency matrix. Thereby, it can be guaranteed that the trace approximation is not distorted due to the selection of only a single set of natural numbers.

[0023] In other embodiments, the computer-implemented method further comprises a step of generating, by a computer, a solution to a graph analysis problem based on a calculated trace approximation of an adjacency matrix, where a complex graph is associated with the graph analysis problem. The time taken to generate a solution to a graph analysis problem using the disclosed trace estimation technique may be less compared to the time taken to generate a solution to a graph analysis problem using conventional trace estimation techniques due to the processing of the limited set of rows described above. This can further be utilized when solving real-life problems in real time (or almost in real time).

[0024] In other embodiments, the graph analysis problem corresponds to one of a graph traversal problem, a network routing problem, a social network analysis problem, a protein folding problem, a graph centrality problem, a sorting problem or a graph classification problem.

[0025] In other embodiments, the computer-implemented method further comprises generating, by a computer, a matrix vector based on the retrieved adjacency matrix, the determined random vector, and a first set of natural numbers, wherein at least one column of the retrieved adjacency matrix is updated by a zero row vector within the generated matrix vector based on a determination that there is no corresponding row number associated with at least one column of the first matrix vector from the first set of natural numbers. As a result, the disclosed computer-implemented method can update some rows of the matrix vector using zero row vectors. During parallel computation, the disclosed method can omit the updated rows using zero vectors so that the calculation of the trace estimate of the adjacency matrix can be performed quickly, efficiently, and effectively using a reduced number of rows to be processed.

[0026] In other embodiments, the computer-implemented method further comprises determining, by a computer, the computing power of at least one electronic device. The computer-implemented method further comprises selecting, by a computer, a subset of entries from the generated matrix vector based on the determined computing power of the electronic device. The disclosed computer-implemented method can first determine the computing power of the electronic device and further select a subset of entries from the generated matrix vector for the calculation of the trace estimate. Due to parallel computation and the omission of some rows for the calculation, the disclosed computer-implemented method can be executed on an electronic device with low computing power. Thus, the trace of the adjacency matrix can be calculated even on a low-end device that may have low computing power.

[0027] In other embodiments, the computer-implemented method further comprises detecting, by a computer, one or more faults associated with one or more calculations performed by at least one electronic device. The computer-implemented method further comprises selecting, by a computer, a subset of entries from a generated matrix vector based on the detection of one or more faults. The disclosed computer-implemented method may first determine one or more faults associated with one or more calculations performed by an electronic device and further select a subset of entries from the generated matrix vector for trace estimation. As a result, even if there are faults in the electronic device, the disclosed computer-implemented method may update an adjacency matrix with zero row vectors in the generated matrix vector due to the one or more detected faults in the electronic device. The entries updated with the zero row vectors may be omitted for processing during the calculation of trace estimation. Due to this omission, the time taken to calculate the trace approximation may be reduced to some extent. Further, if a fault occurs in the electronic device, since the identified fault is unlikely to significantly affect the overall result of the trace approximation, the computer-implemented method may be executed seamlessly.

[0028] According to one aspect of the present disclosure, a system for calculating a trace approximation of an adjacency matrix is provided. The system executes a method for calculating a trace approximation of an adjacency matrix. The method comprises the step of retrieving an adjacency matrix associated with a complex graph. The retrieved adjacency matrix may be of a first dimension. The method further comprises the step of determining a random vector based on the retrieved adjacency matrix. The random vector may be sampled based on one of a Rademacher distribution or a Gaussian distribution and may have an expected value and a variance value of zero. The method further comprises the step of generating a matrix-vector based on the retrieved adjacency matrix and the determined random vector. The method further comprises the step of determining a first set of natural numbers based on the first dimension of the retrieved adjacency matrix. The total number of elements within the determined first set of natural numbers may be smaller than the first dimension of the retrieved adjacency matrix. The method further comprises the step of selecting a subset of entries from the generated matrix-vector based on the determined first set of natural numbers. The method further comprises the step of determining a diagonal random matrix based on the sum of the canonical outer products formed by the selected subset of entries. The method further comprises the step of calculating a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries. Specifically, the method comprises the step of iteratively selecting a subset of entries from the generated matrix-vector based on the determined first set of natural numbers. The method further comprises the step of iteratively determining a diagonal random matrix based on the sum of the canonical outer products formed by the corresponding subset of entries. The method further comprises the step of calculating a trace approximation of the adjacency matrix based on the average of a set of intermediate results obtained based on the iterative selection of the subset of entries and the iterative determination of the diagonal random matrix. The method further comprises the step of storing the calculated trace approximation of the adjacency matrix. By selecting a subset of entries from the matrix-vector product and by executing iterative calculations in parallel, the computational power and storage requirements can be reduced. Thereby, it may be possible to process an adjacency matrix having a very large dimension for calculating the corresponding trace estimate.Due to the parallel processing of a limited set of entries, the disclosed system can quickly and efficiently compute the randomized trace of an adjacency matrix. This can further lead to resource optimization and cost reduction. Additionally, it results from the iterative selection of a subset of entries and further the iterative determination of a diagonal random matrix to include and even average the variations (or differences) of natural numbers to compute a trace approximation of the adjacency matrix. This can ensure that the trace approximation is not distorted due to the selection of only a single set of natural numbers.

[0029] In other embodiments, the method further comprises selecting a subset of entries from the generated matrix vector based on processor set information, where the processor set information indicates the total number of processors in the processor set. The method further comprises determining a diagonal random matrix based on the sum of the canonical outer products formed by the selected subset of entries. Due to this, for each processor of the processor set, the calculations can be executed in an asynchronous manner or in parallel. Such parallel calculations can reduce the time taken to compute the trace approximation of the adjacency matrix.

[0030] According to one aspect of the present disclosure, a computer program product for calculating a trace approximation of an adjacency matrix is provided. The computer program product comprises a computer-readable storage medium having program instructions embodied thereon, the program instructions being executable by a system to cause the system to perform a procedure of retrieving an adjacency matrix associated with a complex graph. The retrieved adjacency matrix may be of a first dimension. The program instructions further comprise a procedure for a computer to determine a random vector based on the retrieved adjacency matrix. The random vector may have an expected value of zero. The program instructions further comprise a procedure for a computer to generate a matrix vector based on the retrieved adjacency matrix and the determined random vector. The program instructions further comprise a procedure for determining a first set of natural numbers based on a first dimension of the retrieved adjacency matrix. The total number of elements within the determined first set of natural numbers may be less than the first dimension of the retrieved adjacency matrix. The program instructions further comprise a procedure for selecting a subset of entries from the generated matrix vector based on the determined first set of natural numbers. The program instructions further comprise a procedure for determining a diagonal random matrix based on a sum of canonical outer products formed by the selected subset of entries. The program instructions further comprise a procedure for calculating a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries, and a procedure for storing the calculated trace approximation of the adjacency matrix. By selecting a subset of entries from the matrix vector product and by performing iterative calculations in parallel, the computational power and storage requirements can be reduced. This may enable the processing of adjacency matrices having very large dimensions for calculating corresponding trace estimates. Due to the parallel processing of a limited set of entries, the disclosed computer programmable product can quickly and efficiently calculate the randomized trace of the adjacency matrix. This may further lead to resource optimization and cost savings. Further, it results from the iterative selection of a subset of entries and further the iterative determination of the diagonal random matrix, including and even averaging the variation (or difference) of natural numbers for calculating the trace approximation of the adjacency matrix.This can ensure that the trace approximation is not distorted due to the selection of only a single set of natural numbers.

[0031] According to one aspect of the present disclosure, a system for calculating a trace approximation of an adjacency matrix is provided. A computer executes a method for calculating a trace approximation of an adjacency matrix. The method comprises retrieving an adjacency matrix associated with a complex graph. The retrieved adjacency matrix may be of a first dimension. The system determines at least one trigger point based on at least one of the computing power of the system or the detection of one or more obstacles associated with one or more computations performed by the system. The method further comprises determining a random vector based on the retrieved adjacency matrix and the determined at least one trigger point. The random vector may have an expected value of zero. The method further comprises generating a matrix vector based on the retrieved adjacency matrix and the determined random vector. The method further comprises determining a first set of natural numbers based on the first dimension of the retrieved adjacency matrix. The total number of elements within the determined first set of natural numbers may be less than the first dimension of the retrieved adjacency matrix. The method further comprises selecting a subset of entries from the generated matrix vector based on the determined first set of natural numbers. The method further comprises determining a diagonal random matrix based on the sum of the canonical outer products formed by the selected subset of entries. The method further comprises calculating a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries, and storing the calculated trace approximation of the adjacency matrix. By selecting a subset of entries from the matrix vector product and by executing iterative computations in parallel, the computing power and storage requirements can be reduced. This can enable efficient processing of adjacency matrices having very large dimensions for calculating the corresponding trace estimates. Due to the parallel processing of a limited set of entries, the disclosed method can quickly and efficiently calculate the randomized trace of an adjacency matrix.

[0032] In other embodiments, the method further comprises comparing the computing power of the system with a predetermined computing power threshold. The method further comprises determining at least one trigger point based on the comparison. Thus, even when the computing power of the system is less than the predetermined computing power threshold, the disclosed method can be executed seamlessly on the system. On the other hand, conventional methods cannot be executed on a system with a computing power less than the predetermined computing power threshold. As a result, the disclosed method can be executed on a low-end system with low computing power.

[0033] According to one aspect of the present disclosure, a computer-implemented method for calculating a trace approximation of an adjacency matrix is provided. The computer-implemented method includes, by a computer, retrieving an adjacency matrix associated with a complex graph. The retrieved adjacency matrix may be of a first dimension. The computer-implemented method further comprises determining at least one trigger point based on at least one of the computing power of the computer or the detection of one or more obstacles associated with one or more computations performed by the computer. The computer-implemented method further comprises determining, by the computer, a random vector based on the retrieved adjacency matrix and the determined at least one trigger point. The random vector may have an expected value of zero. The computer-implemented method further comprises generating, by the computer, a matrix vector based on the retrieved adjacency matrix and the determined random vector. The computer-implemented method further comprises determining, by the computer, a first set of natural numbers based on the first dimension of the retrieved adjacency matrix. The total number of elements within the determined first set of natural numbers may be less than the first dimension of the retrieved adjacency matrix. The computer-implemented method further comprises selecting, by the computer, a subset of entries from the generated matrix vector based on the determined first set of natural numbers. The computer-implemented method further comprises determining, by the computer, a diagonal random matrix based on the sum of the canonical outer products formed by the selected subset of entries. The computer-implemented method further comprises calculating, by the computer, a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries, and storing, by the computer, the calculated trace approximation of the adjacency matrix. By selecting a subset of entries from the matrix vector product and by performing iterative calculations in parallel, the computing power and storage requirements can be reduced. This may enable efficient processing of adjacency matrices having very large dimensions for calculating the corresponding trace estimates.Due to the parallel processing of a limited set of entries, the disclosed computer-implemented method can efficiently and rapidly compute the randomized trace of an adjacency matrix.

[0034] Various aspects of the present disclosure are illustrated by descriptions, flowcharts, block diagrams of computer systems, and / or block diagrams of machine logic included in embodiments of a computer program product (CPP). For any flowchart, depending on the relevant technology, operations can be executed in an order different from that shown in a given flowchart. For example, again depending on the technology involved, two operations shown in consecutive flowchart blocks can be executed simultaneously or in a manner where time at least partially overlaps, as a single integrated operation, in reverse order.

[0035] An embodiment of a computer program product (referred to as "CPP embodiment" or "CPP") is a term used in this disclosure to describe any collection of one or more storage media (also referred to as "media") collectively included in a set of one or more storage devices, which collectively contain machine-readable code corresponding to instructions and / or data for performing the computer operations specified in a given CPP claim. A "storage device" is any tangible device that can hold and store instructions for use by a computer processor. Without limitation, a computer-readable storage medium may be an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these media are floppy disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile disc (DVD), memory stick, floppy disk, mechanically encoded devices (such as punch cards or pits / lands formed on the major surfaces of discs), or any suitable combination of the foregoing. A computer-readable storage medium should not be construed as storage in the form of a transient signal itself, such as, for example, radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, optical pulses passing through an optical fiber cable, electrical signals communicated through a wire, and / or other transmission media, when the term is used in this disclosure. As would be understood by those skilled in the art, data is typically moved occasionally during the normal operation of a storage device, such as during access, defragmentation, or garbage collection, but this does not make the storage device transient because the data is not transient while it is stored.

[0036] FIG. 1 is a diagram showing a computing environment for randomized trace approximation calculation based on an asynchronous computing architecture according to an embodiment of the present disclosure. Referring to FIG. 1, a computing environment 100 is shown that includes an example of an environment for the execution of at least some of the computer code involved in the execution of the method of the present invention, such as improved randomized trace approximation code 120B. In addition to block 120B, the computing environment 100 includes, for example, a computer 102, a wide area network (WAN) 104, an end user device (EUD) 106, a remote server 108, a public cloud 110, and a private cloud 112. In this embodiment, the computer 102 includes a processor set 114 (including a processing circuit 114A and a cache 114B), a communication fabric 116, a volatile memory 118, a persistent storage 120 (including an operating system 120A and block 120B identified above), a set of peripheral devices 122 (including a user interface (UI) device set 122A, a storage 122B, and an Internet of Things (IoT) sensor set 122C), and a network module 124. The remote server 108 includes a remote database 108A. The public cloud 110 includes a gateway 110A, a cloud orchestration module 110B, a set of host physical machines 110C, a set of virtual machines 110D, and a set of containers 110E.

[0037] Computer 102 can take the form of a desktop computer, laptop computer, tablet computer, smartphone, smartwatch or other wearable computer, mainframe computer, quantum computer or any other form of computer, or a mobile device capable of executing programs, accessing a network or querying a database (such as remote database 130), whether currently known or developed in the future. As is well understood in the field of computer technology and depending on the technology, the execution of computer-implemented methods can be distributed among multiple computers and / or multiple locations. On the other hand, in this presentation of computing environment 100, to keep this presentation as simple as possible, the detailed description focuses on a single computer, specifically, computer 102. Computer 102 can be located within the cloud even if not shown within the cloud in FIG. 1. On the other hand, computer 102 does not have to be within the cloud except within any arbitrarily shown range.

[0038] Processor set 114 includes one or more computer processors of any type currently known or developed in the future. Processing circuitry 114A can be distributed across multiple packages, e.g., multiple cooperative integrated circuit chips. Processing circuitry 114A can implement multiple processor threads and / or multiple processor cores. Cache 114B is located within the processor chip package and can be memory used for data or code that should be available for rapid access by threads or cores typically operating on processor set 114. Cache memory is typically organized into multiple levels depending on its relative proximity to processing circuitry 114A. Alternatively, some or all of cache 114B of processor set 114 can be located "off-chip". In some computing environments, processor set 114 can operate with qubits and be designed to perform quantum computing.

[0039] Computer-readable program instructions are typically loaded into computer 102, whereby a computer-implemented method is executed by a series of operations being performed by the processor set 114 of computer 102, such that the instructions so executed instantiate the method specified in the flowchart and / or description of the computer-implemented method (collectively referred to as "the method of the present invention") included herein. These computer-readable program instructions are stored in various types of computer-readable storage media, such as cache 114B and other storage media described below. The program instructions and associated data are accessed by the processor set 114 to control and direct the execution of the method of the present invention. In computing environment 100, at least some of the instructions for executing the method of the present invention may be stored in block 120B within persistent storage 120.

[0040] Communication fabric 116 is a signal conduction path that enables various components of computer 102 to communicate with each other. Typically, this fabric is made up of switches and conductive paths, such as buses, bridges, physical input / output ports, and switches and conductive paths that make up the like. Other types of signal communication paths, such as optical fiber communication paths and / or wireless communication paths, may be used.

[0041] Volatile memory 118 is any type of volatile memory known currently or developed in the future. Examples include dynamic random access memory (RAM) or static RAM. Typically, volatile memory 118 is characterized by random access, although this is not required unless affirmatively shown. In computer 102, volatile memory 118 is located within a single package and is internal to computer 102, although alternatively or additionally, volatile memory 118 may be distributed across multiple packages and / or located external to computer 102.

[0042] The persistent storage 120 is any form of non-volatile storage for a computer, whether currently known or developed in the future. The non-volatility of this storage means that the stored data is maintained regardless of whether power is supplied to the computer 102 and / or directly to the persistent storage 120. The persistent storage 120 may be read-only memory (ROM), but typically at least a portion of the persistent storage 120 enables writing, deleting, and rewriting of data. Some well-known forms of persistent storage 120 include magnetic disks and solid-state storage devices. The operating system 120A can take several forms, such as various known proprietary operating systems or open-source portable operating system interface type operating systems that use a kernel. The code contained within block 120B typically includes at least some of the computer code involved in the execution of the method of the present invention.

[0043] The peripheral device set 122 includes a collection of peripheral devices of the computer 102. The data communication connections between the peripheral devices and other components of the computer 102 can be implemented in various ways, such as a Bluetooth (registered trademark) connection, a Near Field Communication (NFC) connection, a connection via a cable (such as a Universal Serial Bus (USB) type cable), a plug-in connection (e.g., Secure Digital (SD) card), a connection through a local area communication network, and even a connection through a wide area network such as the Internet. In various embodiments, the UI device set 122A can include components such as a display screen, a speaker, a microphone, wearable devices (such as goggles and smartwatches), a keyboard, a mouse, a printer, a touchpad, a game controller, and a tactile device. The storage 122B is an external storage such as an external hard drive or a pluggable storage such as an SD card. The storage 122B can be persistent and / or volatile. In some embodiments, the storage 122B can take the form of a quantum computing storage device for storing data in the form of qubits. In embodiments where the computer 102 is required to have a large amount of storage (e.g., the computer 102 locally stores and manages a large database), this storage can be provided by a peripheral storage device designed to store a very large amount of data, such as a Storage Area Network (SAN) shared by a plurality of geographically dispersed computers. The IoT sensor set 122C is composed of sensors that can be used in the applications of the Internet of Things. For example, one sensor can be a thermometer, and another sensor can be a motion detector.

[0044] The network module 124 is an aggregation of computer software, hardware, and firmware that enables the computer 102 to communicate with other computers through the WAN 104. The network module 124 may include hardware such as a modem or a Wi-Fi (registered trademark) signal transceiver, software for packetizing and / or depacketizing data for communication network transmission, and / or web browser software for communicating data via the Internet. In some embodiments, the network control function and the network transfer function of the network module 124 are executed on the same physical hardware device. In other embodiments (e.g., embodiments that utilize software-defined networking (SDN)), the control function and the transfer function of the network module 124 are executed on physically separate devices, and as a result, the control function manages several different network hardware devices. The computer-readable program instructions for executing the method of the present invention can typically be downloaded from an external computer or an external storage device to the computer 102 through a network adapter card or a network interface included within the network module 124.

[0045] The WAN 104 is any currently known or future-developed wide area network (e.g., the Internet) that can communicate computer data over a non-local distance by any technology for communicating computer data. In some embodiments, the WAN 104 can be replaced and / or supplemented by a local area network (LAN) designed to communicate data between devices located in a local area such as a Wi-Fi (registered trademark) network. The WAN 104 and / or the LAN typically includes computer hardware such as copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and edge servers.

[0046] The end-user device (EUD) 106 is any computer system that can take any of the forms described above in connection with computer 102 and is used and controlled by an end user (e.g., a customer of the enterprise operating computer 102). The EUD 106 typically receives useful data from the operation of computer 102. For example, in a virtual scenario where computer 102 is designed to provide recommendations to an end user, this recommendation will typically be communicated from the network module 124 of computer 102 to the EUD 106 through the WAN 104. Thus, the EUD 106 can display or otherwise present the recommendation to the end user. In some embodiments, the EUD 106 can be a client device, such as a thin client, a thick client, a mainframe computer, a desktop computer, and the like.

[0047] The remote server 108 is any computer system that provides at least some data and / or functions to computer 102. The remote server 108 can be controlled and used by the same entity that operates computer 102. The remote server 108 represents a machine that collects and stores useful data for use by other computers, such as computer 102. For example, in a virtual scenario where computer 102 is designed and programmed to provide recommendations based on historical data, this historical data can be provided from the remote database 130 of the remote server 108 to computer 102.

[0048] The public cloud 110 is any computer system that is available for use by multiple entities, providing on-demand availability of computer system resources and / or other computing capabilities, particularly data storage (cloud storage) and computing power, without direct active management by the user. Cloud computing typically exploits resource sharing to achieve coherence and economies of scale. The direct and active management of the computing resources of the public cloud 110 is performed by the computer hardware and / or software of the cloud orchestration module 110B. The computing resources provided by the public cloud 110 are typically implemented by virtual computing environments operating on various computers that make up the host physical machine set 110C, which is the universe of physical computers internal to the public cloud 110 and / or available to the public cloud 110. The virtual computing environment (VCE) typically takes the form of virtual machines from the virtual machine set 110D and / or containers from the container set 110E. It is understood that these VCEs may be stored as images and transferred between various physical machine hosts, either as images or after instantiation of the VCE. The cloud orchestration module 110B manages the transfer and storage of images, deploys new instantiations of the VCE, and manages the active instantiation of VCE deployments. The gateway 110A is an aggregate of computer software, hardware, and firmware that enables the public cloud 110 to communicate through the WAN 104.

[0049] Here, some further explanations of virtual computing environments (VCEs) are provided. A VCE can be stored as an "image". A new active instance of a VCE can be instantiated from the image. Two well-known types of VCEs are virtual machines and containers. A container is a VCE that uses operating system-level virtualization. This refers to a feature of the operating system where the kernel enables the existence of multiple isolated user-space instances called containers. These isolated user-space instances typically behave as actual computers from the perspective of the programs running within them. A computer program running on a normal operating system can utilize all the resources of that computer, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, a program running inside a container can only use the contents of the container and the devices assigned to the container. This is a feature known as containerization.

[0050] The private cloud 112 is similar to the public cloud 110, except that computing resources are only available for use by a single enterprise. Although the private cloud 112 is shown as communicating with the WAN 104, in other embodiments, the private cloud may be completely disconnected from the Internet and only accessible through a local / private network. A hybrid cloud is a composition of multiple clouds of different types (e.g., private, community, or public cloud types), and in many cases, each is implemented by a different vendor. Each of the multiple clouds remains a separate discrete entity, but the larger hybrid cloud architecture is tied together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between the constituent clouds. In this embodiment, both the public cloud 110 and the private cloud 112 are part of a larger hybrid cloud.

[0051] FIG. 2 is a diagram showing an environment for randomized trace approximation calculation based on an asynchronous computing architecture according to an embodiment of the present disclosure. FIG. 2 is described in conjunction with the elements from FIG. 1. Referring to FIG. 2, a diagram of a network environment 200 is shown. The network environment 200 includes a system 202, a display screen 204, a server 206, and a user 208. The network environment 200 may further include the EUD 106 and the WAN 104 of FIG. 1. In one embodiment, the system 202 may be an exemplary embodiment of the computer 102 of FIG. 1.

[0052] System 202 may include suitable logic, circuitry, interfaces, and / or code configured to compute a trace approximation of an adjacency matrix. System 202 may be configured to retrieve an adjacency matrix associated with a complex graph and, further, to determine a random vector based on the retrieved adjacency matrix. System 202 may further be configured to generate a matrix-vector based on the retrieved adjacency matrix and the determined random vector. System 202 may further be configured to determine a first set of natural numbers based on a first dimension of the retrieved adjacency matrix. System 202 may further be configured to select a subset of entries from the generated matrix-vector based on the determined first set of natural numbers and to determine a diagonal random matrix based on a sum of canonical outer products formed by the selected subset of entries. System 202 may further be configured to compute a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries and to store the computed trace approximation of the adjacency matrix. Examples of System 202 may include, but are not limited to, computing devices, virtual computing devices, mainframe machines, servers, computer workstations, smartphones, cellular phones, mobile phones, gaming devices, consumer electronics (CE) devices, and / or any other devices having a trace computing function.

[0053] EUD106 may include suitable logic, circuitry, interfaces, and / or code that can provide an adjacency matrix as user input to system 202. In another embodiment, EUD106 may be configured to output a calculated trace approximation of the adjacency matrix onto display screen 204. Specifically, system 202 may control the display screen 204 of EUD106 to display the calculated trace approximation of the adjacency matrix on display screen 204. EUD106 may be associated with user 208 who may desire to calculate a trace approximation of the adjacency matrix or who may desire to generate a solution to a graph analysis problem. Examples of EUD106 may include, but are not limited to, computing devices, mainframe machines, servers, computer workstations, smartphones, cellular phones, mobile phones, gaming devices, consumer electronics (CE) devices, and / or any other device having a trace computing function.

[0054] The display screen 204 may include appropriate logic, circuitry, and interfaces configured to display the calculated trace approximation or the solution to the graph analysis problem. In one embodiment, the display screen 204 may further display one or more user interface elements from which the user 208 may provide user input. In some embodiments, the display screen 204 may be an external display device associated with the EUD 106. The display screen 204 may be a touch screen that enables the user to provide user input via the display screen 204. The touch screen may be at least one of a resistive touch screen, a capacitive touch screen, or a thermal touch screen. The display screen 204 may be realized through some known technologies, such as, for example, but not limited to, liquid crystal display (LCD) displays, light emitting diode (LED) displays, plasma displays, or organic LED (OLED) display technologies or other display devices. According to one embodiment, the display screen 204 may refer to the display screen of a head-mounted device (HMD), a smart glass device, a see-through display, a projection-based display, an electrochromic display, or a transparent display.

[0055] Server 206 may include appropriate logic, circuitry, and interfaces and / or code configured to store an adjacency matrix and a random vector. Server 206 may further be configured to store a generated matrix vector, a determined first set of natural numbers, a selected subset of entries, a determined random diagonal matrix, and a calculated trace approximation of the adjacency matrix. Server 206 may be implemented as a cloud server and may execute operations through web applications, cloud applications, HTTP requests, repository operations, file transfers, and the like. Other exemplary implementations of Server 206 may include, but are not limited to, databases, servers, file servers, web servers, media servers, application servers, mainframe servers, or cloud computing servers.

[0056] In at least one embodiment, Server 206 may be implemented as a plurality of distributed cloud-based resources using some techniques well known to those skilled in the art. Those skilled in the art will understand that the scope of the present disclosure need not be limited to the implementation of Server 206 and System 202 as two separate entities. In certain embodiments, the functions of Server 206 may be wholly or at least partially incorporated into System 202 without departing from the scope of the present disclosure, or vice versa.

[0057] During operation, User 208 may desire to solve a graph analysis problem. A graph analysis problem may correspond to a category of computational problems that may involve obtaining and studying insights from a graph, which may be a mathematical structure consisting of a set of nodes (vertices) and a set of edges (connections) that link the set of nodes. In one embodiment, a graph analysis problem may be associated with real-world problems. Specifically, a graph analysis problem may be linked to real-world problems because it may provide a powerful framework for modeling, understanding, and solving complex problems that may involve relationships, connections, and interactions between entities. Details regarding graph analysis problems are provided, for example, in FIG. 5.

[0058] In one embodiment, the graph analysis problem may include the analysis of a complex graph that may include a set of nodes and a set of edges (or links) between these multiple nodes. The graph may be represented as an adjacency matrix. The adjacency matrix may be a square matrix that can represent the connections or relationships between nodes (or vertices) in a complex graph. Each entry in the adjacency matrix may correspond to a potential edge between two nodes, and its value may indicate whether there is a connection between those nodes. Typically, in a complex graph, the adjacency matrix may be symmetric, and if nodes i and j are connected, a "1" is in entry (i, j), and if not, a "0" is present. Thus, the adjacency matrix may provide a structured way to encode the connections of the graph and may be a basic tool for performing one or more graph-related calculations and algorithms. As a result, the adjacency matrix is essential in various graph analysis problems, from social network analysis to transportation route optimization and others. Details about the graph and the adjacency matrix are provided, for example, in FIG. 3.

[0059] System 202 may be configured to retrieve an adjacency matrix associated with a complex graph. The retrieved adjacency matrix may be of the first dimension (e.g., N×N). Based on the retrieved adjacency matrix, system 202 may be configured to determine a random vector. The random vector may have an expected value of zero (0) and a variance value of one (1). System 202 may be configured to generate a matrix vector based on the retrieved adjacency matrix and the determined random vector. The matrix vector may correspond to the multiplication of the retrieved adjacency matrix and the determined random vector. Details about the matrix vector are provided, for example, in FIG. 5.

[0060] System 202 may further be configured to determine a first set of natural numbers based on a first dimension of the retrieved adjacency matrix. In one embodiment, the total number of elements within the determined first set of natural numbers may be less than the first dimension of the retrieved adjacency matrix. System 202 may further be configured to select a diagonal random matrix based on a sum of canonical outer products formed by a selected subset of entries.

[0061] Based on the determined diagonal random matrix and the selected subset of entries, System 202 may be configured to calculate a trace approximation of the adjacency matrix. System 202 may further be configured to store the calculated trace approximation of the adjacency matrix in volatile memory 118. In another embodiment, System 202 may further be configured to transmit the calculated trace approximation to EUD 106 for rendering on a user interface of display screen 204.

[0062] FIG. 3 shows an exemplary complex graph, and an exemplary adjacency matrix associated with the exemplary complex graph, according to one embodiment of the present disclosure. FIG. 3 is described in conjunction with elements from FIGS. 1 and 2. Referring to FIG. 3, shown is an exemplary diagram 300 that includes a complex graph 302, and an adjacency matrix 304 associated with the complex graph 302.

[0063] The complex graph 302 may be a non-linear data structure that may include a set of vertices and a set of edges. The set of vertices may also be referred to as a set of nodes. Each of the set of edges may correspond to a line or arc that may connect any two nodes within the complex graph 302. More formally, the complex graph 302 may be composed of a set of vertices or nodes (V), and the set of edges (E) may be denoted by G(E,V).

[0064] As described above, the complex graph 302 can be associated with graph analysis problems. A graph analysis problem can refer to a broad category of computational problems that may involve the study, exploration, and manipulation of the complex graph 302. Examples of complex graphs 302 can correspond to graphs related to, but not limited to, graph traversal problems, network routing problems, social network analysis problems, protein folding problems, graph centrality problems, sorting problems, or graph classification problems.

[0065] In an exemplary embodiment, a graph traversal problem can be a basic problem that may involve traversing the complex graph 302 in a systematic manner to visit all nodes (vertices) to search or retrieve specific information or patterns within the complex graph 302. In the real world, when there is a map of a city with roads represented as a graph, each intersection may be represented by a vertex, and each road between intersections may be represented by an edge. It may be necessary to find the shortest path from the current location of a user within the city to a specific destination. This problem can be solved using graph traversal where the user starts at the current intersection and explores the road network using one or more traversal techniques to find the shortest path to the destination.

[0066] As shown in FIG. 3, the complex graph 302 can include six (6) vertices or nodes {1, 2, 3, 4, 5, and 6}. In other scenarios, the graph data structure can include a different number of vertices than those shown. Additionally, the set of vertices of the complex graph 302 can be connected differently than those shown.

[0067] The complex graph 302 can be associated with an adjacency matrix 304. Specifically, the complex graph 302 can also be represented by the adjacency matrix 304. The adjacency matrix 304 can be a square matrix that can be used to represent the complex graph 302. In the adjacency matrix 304, each row and column corresponds to a vertex (or node) within the complex graph 302, and the entries of the adjacency matrix 304 can indicate whether an edge (or connection) exists between the vertices.

[0068] Assuming that G(E, V) is the complex graph 302, if there is an edge from the i-th vertex to the j-th vertex, or if there is a "0" at the (i, j) position otherwise, the adjacency matrix (A) 304 of the complex graph (G) 302 may be an N×N matrix that can have a "1" at the (i, j) position (or cell). Mathematically, the adjacency matrix (A) 304, that is,

Number

Number

[0069] As shown in FIG. 3, since there is an edge between vertex {1} and vertex {2} of the complex graph 302, the values of cells (1, 2) and (2, 1) may be "1". Similarly, since there is no edge between vertex {1} and vertex {5} of the complex graph 302, the values of cells (1, 5) and (5, 1) may be "0" in the adjacency matrix 304.

[0070] FIG. 4A is a diagram showing exemplary operations for determining the computing power of a basic electronic device according to an embodiment of the present disclosure. FIG. 4A is described in conjunction with elements from FIGS. 1, 2, and 3. Referring to FIG. 4A, a block diagram 400A showing exemplary operations from 402A to 402D described herein is shown. The exemplary operations shown in block diagram 400 may start at 402A and may be performed by any computing system, apparatus, or device, for example, by computer 102 of FIG. 1 or system 202 of FIG. 2. Although shown as discrete blocks, the exemplary operations associated with one or more blocks of block diagram 400 may be divided into additional multiple blocks, combined into fewer blocks, or eliminated depending on a particular implementation.

[0071] In 402A, a data acquisition operation can be executed. In the data acquisition operation, the system 202 can be configured to acquire information associated with a system or electronic device (such as computer 102) on which the operation of randomized trace approximation calculation may need to be executed. When the system 202 corresponds to an on-premises system, the system 202 can be configured to acquire data associated with the on-premises system. In another embodiment, when the system 202 corresponds to a cloud system, the system 202 can be configured to acquire data associated with an electronic device on which the operation of randomized trace approximation can be implemented.

[0072] The acquired information can include, but is not limited to, processor information and memory information associated with the underlying system or electronic device. Specifically, the processor information can include information associated with at least one of the clock speed (clock frequency), number of cores, graphics processing unit (GPU), thermal design power (TDP), and parallel computing ability associated with one or more processors of the underlying system electronic device. The memory information can include cache size, memory (RAM) capacity and speed, storage type and speed, and the like associated with the memory of the underlying system or electronic device.

[0073] In 402B, a computing power determination operation can be executed. In the computing power determination operation, the system 202 can be configured to determine the computing power of the underlying system or electronic device based on the acquired information. The computing power of the underlying system or electronic device can correspond to a measure of the ability of the underlying system or electronic device to execute calculations, process data, and execute tasks within a given time frame. Details regarding computing power are known in the art and are therefore omitted for brevity.

[0074] In 402C, the determined computing power of the underlying system or electronic device can be compared with a predetermined computing power threshold. If the determined computing power of the underlying system or electronic device is greater than the predetermined computing power threshold, a conventional trace approximation technique 402D can be executed to estimate the trace of the adjacency matrix. Such conventional trace approximation techniques are known in the art.

[0075] If the determined computing power of the underlying system or electronic device is less than the predetermined computing power threshold, the operations described in FIG. 5 or FIG. 8 can be executed to calculate the trace approximation. In some embodiments, even if the determined computing power of the underlying system or electronic device is greater than the predetermined computing power threshold, the operations described in FIG. 5 or FIG. 8 can be executed to calculate the trace approximation.

[0076] FIG. 4B is a diagram showing exemplary operations for determining one or more faults associated with one or more calculations executed by at least one electronic device, according to an embodiment of the present disclosure. FIG. 4B is described in conjunction with elements from FIGS. 1, 2, 3, and 4A. Referring to FIG. 4B, a block diagram 400B showing the exemplary operations from 402E to 402H described herein is shown. The exemplary operations shown in block diagram 400B can begin at 402E and can be executed by any computing system, apparatus, or device, such as computer 102 of FIG. 1 or system 202 of FIG. 2. Although shown as discrete blocks, the exemplary operations associated with one or more blocks of block diagram 400B can be divided into additional blocks, combined into fewer blocks, or eliminated, depending on the particular implementation.

[0077] In one embodiment, randomized trace estimation requires that the matrix-vector (MV) product be completed without any error. However, the underlying system of an electronic device having a large number of processors can introduce several impairments. As an example, in high-performance computing (HPC) applications involving hundreds of thousands of nodes, resilience becomes a major challenge. Even if each node provides, for example, an individual mean time between failures (MTBF) of one century, a machine having 100,000 such nodes can encounter a failure on average every nine hours, which can be greater than the execution time of many HPC applications. A machine having 1,000,000 nodes (also having an MTBF of one century) will encounter a failure on average every 53 minutes. Thus, there is a requirement to detect impairments that can be introduced into the underlying system. If the underlying system or the electronic device has an impairment, the disclosed method of computing the trace can be applied because it can be executed quickly due to discarding a set of matrix-vector entries due to the assumed impairment.

[0078] In 402E, the data acquisition operation can be performed for one or more computations. In the data acquisition operation, system 202 can be configured to acquire data for which one or more computations may need to be performed. In another embodiment, the acquired data can correspond to any data of any format for which one or more computations can be performed by the underlying system or the electronic device. As a first non-limiting example, the acquired data can correspond to any matrix (or complex matrix) for which one or more computations can be performed by the underlying system or the electronic device.

[0079] In 402F, a calculation operation can be executed. In the calculation operation, the system 202 can be configured to apply one or more mathematical operations (or calculations) to the acquired data. Referring to the first example, the one or more mathematical operations can correspond to matrix multiplication operations, matrix decomposition operations, matrix rank calculation operations, matrix normal form identification operations, and the like. As a second example, the one or more mathematical operations can correspond to matrix rank calculation operations.

[0080] In 402G, a result output operation can be executed. In the result output operation, the system 202 can be configured to output the result generated by applying one or more mathematical operations to the acquired data. As in the second example, the result output operation can output the calculated rank of the matrix included in the acquired data.

[0081] In 402G, a fault detection operation can be executed. In the fault detection operation, the system 202 can be configured to compare the generated result with the ground truth. The ground truth can correspond to the real value and absolute value of the rank of a matrix that can be used as a criterion for detecting one or more faults associated with one or more calculations performed by the underlying system or electronic device. If the result generated by the underlying system or electronic device is the same as the ground truth, the conventional trace approximation operation 404D can be executed. Otherwise, if the generated result is different from the ground truth, one or more faults are presented in the underlying system or electronic device, and the operations described in FIG. 5 or FIG. 8 can be executed to calculate the trace approximation. In some embodiments, even if the result generated by the underlying system or electronic device is the same as the ground truth, the operations described in FIG. 5 or FIG. 8 can be executed to calculate the trace approximation.

[0082] It should be noted that the calculation of the rank of a matrix is provided merely as an example of one or more calculations. The present disclosure is not limited to the calculation of ranks for detecting one or more faults in the underlying system or electronic device. For example, the system 202 may utilize other techniques such as, but not limited to, a row checksum for detecting one or more faults.

[0083] FIG. 5 is a diagram showing exemplary operations for randomized trace approximation calculation based on an asynchronous computing architecture according to an embodiment of the present disclosure. FIG. 5 is described in conjunction with elements from FIGS. 1, 2, 3, 4A, and 4B. Referring to FIG. 5, a block diagram 500 showing the exemplary operations from 502A to 502I described herein is shown. The exemplary operations shown in block diagram 500 may begin at 502A and may be performed by any computing system, apparatus, or device, such as, for example, computer 102 of FIG. 1 or system 202 of FIG. 2. Although shown as discrete blocks, the exemplary operations associated with one or more blocks of block diagram 500 may be divided into additional blocks, combined into fewer blocks, or eliminated, depending on the particular implementation.

[0084] At 502A, a matrix fetch operation may be performed. In the matrix fetch operation, the system 202 may be configured to fetch an adjacency matrix (A). The adjacency matrix (A) may be associated with a complex graph and may be of the first dimension. Specifically, the adjacency matrix (A) may be a square matrix of dimension (N×X), where N may correspond to the number of rows and columns of the adjacency matrix (A). Specifically, the adjacency matrix (A) may have N rows and N columns.

[0085] In one embodiment, the dimension of the adjacency matrix (A) can be based on the number of vertices of the corresponding complex graph. Specifically, the number of rows and columns in the adjacency matrix (A) may be equal to the number of vertices of the complex graph associated with the adjacency matrix (A). As described above, the complex graph can be associated with a graph analysis problem that can represent real-world problems. Examples of graph analysis problems can include, but are not limited to, graph traversal problems, network routing problems, social network analysis problems, protein folding problems, graph centrality problems, sorting problems, or graph classification problems. Details regarding graph analysis problems are provided, for example, in FIG. 3.

[0086] Typically, the adjacency matrix (A) can be mathematically represented by Equation (2) as follows. A = f(G) (2) Here, G is a matrix that depends on the graph analysis problem,

Number

Number

[0087] In an alternative embodiment, the system 202 can receive data associated with a graph analysis problem. The system 202 can further be configured to generate a complex graph associated with the graph analysis problem based on the received data. The system 202 can further generate an adjacency matrix (A) based on the generated complex graph. Details regarding the complex graph and the adjacency matrix (A) are provided, for example, in FIG. 3.

[0088] In 502B, a vector determination operation can be executed. In the vector determination operation, the system 202 can be configured to determine a random vector (x) based on the retrieved adjacency matrix. The random vector (x) can be a set of statistically independent and identically distributed probability variables having an average (or expected value) of 0 and a variance value of 1. The expected value of a probability variable can correspond to the measured value of its average or median when considering many samples from the underlying probability distribution. In other words, following each component of the random vector (x), there may be a similar probability distribution, and on average, these components total to zero, but the spread or variance is standardized to a variance value of 1.

[0089] In one embodiment, the random vector (x) can be sampled based on the Rademacher distribution. Specifically, the values of the components of one or more random vectors (x) can be based on the Rademacher distribution. The Rademacher distribution can be a discrete probability distribution that takes on the values +1 and -1 with equal probability. In the context of a random vector (x) sampled from the Rademacher distribution, each component of the random vector (x) can be an independent probability variable following the Rademacher distribution. In an alternative embodiment, the random vector (x) can be sampled based on the Gaussian distribution. Details about the Gaussian distribution are known in the art and are thus omitted for brevity.

[0090] Typically, the random vector (x) can be mathematically represented by Equation (3) as follows. x = [x1, x2, x3,..., x k (3) Here, x is a random vector,

Number

Number

Number

[0091] In one embodiment, the mean value of a random vector may be a vector that summarizes the central tendency of the components of the random vector. This mean value is also known as the expected value of the random vector. Mathematically, the mean value (μ) of a random vector can be defined by Equation (4) as follows. μ = [E(x1), E(x2), E(x3),..., E(x k )] (4) Here, μ corresponds to the mean value of the random vector x, and E(x i ) corresponds to the expected value of the i-th component of the random vector x.

[0092] The variance value of the random vector x can provide a measure of the spread or dispersion of the components of the random vector x. In one embodiment, the variance value (Σ) of the random vector (x) may be defined as a matrix and is often called the covariance matrix. The elements of this matrix Σij represent the covariance between the components x i and x j . The variance value of the random vector x can provide information about how the components of the random vector x are related to each other. The diagonal elements give the spread of each component, and the off-diagonal elements represent the relationships between the components.

[0093] In 502C, a matrix vector generation operation can be executed. In the matrix vector generation operation, the system 202 can be configured to generate a matrix vector (Ax). The matrix vector (Ax) can be generated based on the multiplication of the adjacency matrix (A) and the random vector (x). Based on the multiplication of the adjacency matrix (A) and the random vector (x), a new vector (MV) can be generated. Details regarding the multiplication of the adjacency matrix (A) and the random vector (x) are known in the art and are thus omitted for brevity.

[0094] In 502D, a natural number determination operation can be executed. In the natural number determination operation, the system 202 can be configured to determine a first set of natural numbers based on the first dimension of the retrieved adjacency matrix (A).

Number

Number

Number

Number

Number

[0095] Mathematically, assuming the set of all natural numbers ( [Number] ), the system 202 can select any [Number] number of natural numbers with equal probability, that is, each of the [Number] possible row sets of the adjacency matrix (A) has a probability [Number] of being selected.

[0096] In 502E, an asynchronous matrix vector generation operation can be executed. In the asynchronous matrix vector generation operation, the system 202 can be configured to generate an asynchronous matrix vector (y). The asynchronous matrix vector (y) can be generated based on the matrix vector generated in 502C and the first set of natural numbers [Number] . Specifically, the asynchronous matrix vector (y) can be defined as a function of the first set of natural numbers [Number] . The asynchronous matrix vector (y) can be mathematically represented by Equation (5) as follows. [Number] Here, y is the asynchronous matrix vector, A is the adjacency matrix, x is the random vector, and [Number] is an operator equivalent to the regular MV Ax, except that here, for any

Number

[0097] In one embodiment, the system 202 may be configured to generate an asynchronous matrix vector (y) based on the retrieved adjacency matrix (A), the determined random vector (x), and a first set of natural numbers

Number

Number

[0098] As described above, the asynchronous matrix vector (y) can be defined as a function of a first set of natural numbers

Number

Number

Number

[0099] The use of an asynchronous architecture provides an efficient and effective calculation of trace approximation. Typically, asynchronous calculations can occur naturally in a distributed memory implementation for the calculation of fixed points via iterative algorithms in order to reduce idle time between different processing elements, typically through the reduction of synchronization points.

[0100] In 502F, an entry selection operation can be performed. In the entry selection operation, system 202 can be configured to select a subset of entries from the generated asynchronous matrix vector (y). The selection of the subset of entries can be based on a first set of determined natural numbers. Specifically, system 202 can be configured to select a subset of entries from the asynchronous matrix vector (y) based on the total number of the first set of natural numbers. As an example, when the total number of the first set of natural numbers is 6, system 202 can be configured to randomly select 6 entries from the generated asynchronous matrix vector (y). System 202 can discard the remaining entries due to one or more assumed faults indicated by the corresponding row checksums. In another embodiment, the selection of entries can be based on the computing power of the underlying system or electronic device. In another embodiment, the selection of entries can be based on the total number of a set of load balancers associated with the underlying system (e.g., a server). For example, in a load balancing scenario in a high-performance computing cluster with "N" identical processing elements connected through several media where each row of the adjacency matrix (A) is distributed without duplication to a separate processing element. Since different rows of the adjacency matrix "A" can have different sparsity patterns, waiting for all processing elements to synchronize can lead to low throughput. Instead, system 202 can sample each product at fixed time intervals and consider only the determined entries.

Number

[0101] In 502G, a diagonal matrix determination operation can be performed. In the diagonal matrix determination operation, system 202 is a diagonal random matrix

Number

Number

Number

Number

Number

[0102] In 502H, a trace approximation calculation operation can be executed. In the trace approximation calculation operation, the system 202 may be configured to calculate a trace approximation of the adjacency matrix (A) based on the determined diagonal random matrix

Number

[0103] k = 1, 2,... m,

Number

Number

Number

Number

Number

Number

Number

[0104] In Equation (7)

Number

Number

Number

[0105] When T ≡ N, as in the synchronous case, the matrix

Number

Number

Number

Number

Number

[0106] In one embodiment, system 202 may be configured to iteratively select a subset of entries from the generated asynchronous matrix vector based on a determined first set of natural numbers. Based on the selected subset of entries, system 202 may be configured to determine a diagonal random matrix based on the sum of the canonical outer products formed by the corresponding subset of entries. Based on the selected subset of entries and the determined diagonal random matrix, system 202 may be configured to calculate a trace approximation of the adjacency matrix (A). Specifically, system 202 may be configured to calculate a trace approximation of the adjacency matrix (A) based on the average of a set of intermediate results obtained based on the iterative selection of the subset of entries and the iterative determination of the diagonal random matrix. In one embodiment, the number of times this iteration is performed may be the number of combinations that can be formed by the selected set of natural numbers

Number

[0107] In one embodiment, the calculations performed in Equation (7) and / or Equation (8) may be performed in parallel for each processor included within the processor set. For example, if there are 10 processors within processor set 114, system 202 may perform 10 calculations in parallel to save time. Further, in some embodiments, system 202 may be configured to select a subset of entries from the generated matrix vector based on the determined computational capacity of the system. Specifically, the subset of entries to be selected may be equal to the total number of processors included within the processor set. In another embodiment, the density of the first set of natural numbers may be based on the number of processors within processor set 114.

[0108] In 502H, a trace approximation memory operation can be executed. In the trace approximation memory operation, system 202 can be configured to store the calculated trace approximation of the adjacency matrix. System 202 can further be configured to generate a solution to a graph analysis problem based on the calculated trace approximation of the adjacency matrix. As described above, the graph analysis problem can correspond to one of a graph traversal problem, a network routing problem, a social network analysis problem, a protein folding problem, a graph centrality problem, a sorting problem, or a graph classification problem.

[0109] In another embodiment, system 202 can be configured to render the calculated trace approximation on the display screen of EUD106. In another embodiment, system 202 can be configured to render the generated solution to the graph analysis problem on the display screen of EUD106.

[0110] FIG. 6 is an exemplary diagram 600 showing an exemplary use case scenario of randomized trace approximation according to an embodiment of the present disclosure. FIG. 6 is described in conjunction with elements from FIGS. 1, 2, 3, 4A, 4B, and 5. Referring to FIG. 6, an exemplary diagram 600 is shown. Referring to FIG. 6, an adjacency matrix 602, and the trace of the adjacency matrix 602 are further shown. FIG. 6 further shows system 202 of FIG. 2.

[0111] As described above, system 202 can be configured to retrieve an adjacency matrix 602 that can be associated with a complex graph. The retrieved adjacency matrix can be of the first dimension. In one embodiment, system 202 can be configured to receive the adjacency matrix 602 from EUD106 associated with an end user (not shown). Details about the adjacency matrix 602 are provided, for example, in FIGS. 4A, 4B, and 5.

[0112] Based on the reception / fetching of the adjacency matrix 602, the system 202 may be configured to determine a random vector based on the fetched adjacency matrix. The determined random vector may have an expected value of zero (0) and a variance value of one (1). The system 202 may further be configured to generate a matrix vector based on the fetched adjacency matrix and the determined random vector. Details regarding the random vector and the matrix vector are provided, for example, in FIG. 5.

[0113] The system 202 may further be configured to determine a first set of natural numbers based on a first dimension of the fetched adjacency matrix. The total number of elements within the determined first set of natural numbers may be less than the first dimension of the fetched adjacency matrix. The system 202 may further be configured to select a subset of entries from the generated matrix vector based on the determined first set of natural numbers.

[0114] Based on the selection of the subset of entries, the system 202 may be configured to determine a diagonal random matrix based on the sum of the canonical outer products formed by the selected subset of entries. The system 202 may further be configured to calculate a trace approximation 604 of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries. The system 202 may further be configured to store the calculated trace approximation of the adjacency matrix. In some embodiments, the system 202 may further be configured to output the calculated trace approximation of the adjacency matrix. In one embodiment, the output of the calculated trace approximation of the adjacency matrix may correspond to displaying the calculated trace approximation on the display screen 204 of the EUD 106. In another embodiment, the output of the calculated trace approximation of the adjacency matrix may correspond to generating a solution to a graph analysis problem associated with a complex graph using the calculated trace approximation. Details regarding the calculation of the trace approximation of the adjacency matrix are provided, for example, in FIG. 5.

[0115] FIG. 7 is an exemplary diagram 700 of a graph between the number of samples and the relative error, according to one embodiment of the present disclosure. FIG. 7 is described in conjunction with elements from FIGS. 1, 2, 3, 4A, 4B, 5, and 6. Referring to FIG. 7, a first graph 702 and a second graph 704 are further shown. The first graph 702 is associated with the calculation of the Estrada index (e G ), where G is the adjacency matrix, and the second graph 704 is associated with the calculation of the cube of the matrix (G 3 ).

[0116] In both the first graph 702 and the second graph 704, the results are shown with respect to the execution of the disclosed method (i.e., the asynchronous model) and the execution of the conventional method (i.e., the synchronous model) for trace estimation. The results associated with the disclosed method (i.e., the asynchronous model) are represented by a solid line, while the results associated with the conventional method (i.e., the synchronous model) are represented by a dotted line.

[0117] FIG. 8 is a flowchart 800 showing an exemplary method for randomized trace approximation calculation based on an asynchronous computing architecture, according to one embodiment of the present disclosure. FIG. 8 is described in conjunction with elements from FIGS. 1, 2, 3, 4A, 4B, 5, 6, and 7. Referring to FIG. 8, a flowchart 800 is shown. The operations of the exemplary method can be performed by any computing system, for example, by the computer 102 of FIG. 1 or the system 202 of FIG. 2. The operations of the flowchart 800 can start at 802.

[0118] At 802, an adjacency matrix associated with a complex graph can be retrieved. The retrieved adjacency matrix can be of the first dimension. In at least one embodiment, the system 202 can be configured to retrieve an adjacency matrix associated with a complex graph, where the retrieved adjacency matrix is of the first dimension. Details about the adjacency matrix are provided, for example, in FIGS. 2, 3, and 5.

[0119] At 804, a random vector can be determined based on the extracted adjacency matrix. The random vector can have an expected value of zero. In at least one embodiment, system 202 may be configured to determine a random vector based on the extracted adjacency matrix, and the random vector has an expected value of zero. Details regarding the random vector are provided in FIG. 5.

[0120] At 806, a matrix vector can be generated based on the extracted adjacency matrix and the determined random vector. In at least one embodiment, system 202 may be configured to generate a matrix vector based on the extracted adjacency matrix and the determined random vector.

[0121] At 808, a first set of natural numbers based on a first dimension of the extracted adjacency matrix can be determined. The total number of elements within the determined first set of natural numbers may be less than the first dimension of the extracted adjacency matrix. In at least one embodiment, system 202 may be configured to determine a first set of natural numbers based on a first dimension of the extracted adjacency matrix, where the total number of elements within the determined first set of natural numbers is less than the first dimension of the extracted adjacency matrix.

[0122] At 810, a subset of entries from the generated matrix vector can be selected based on the determined first set of natural numbers. In at least one embodiment, system 202 may be configured to select a subset of entries from the generated matrix vector based on the determined first set of natural numbers.

[0123] At 812, a diagonal random matrix can be determined based on the sum of the canonical outer products formed by the selected subset of entries. In at least one embodiment, system 202 may be configured to determine a diagonal random matrix based on the sum of the canonical outer products formed by the selected subset of entries.

[0124] 814. In 814, a trace approximation of the adjacency matrix can be calculated based on the determined diagonal random matrix and a subset of the selected entries. In at least one embodiment, system 202 can be configured to calculate a trace approximation of the adjacency matrix based on the determined diagonal random matrix and a subset of the selected entries. In at least one embodiment, system 202 can be configured to store the calculated trace approximation of the adjacency matrix.

[0125] 816. In 816, the calculated trace approximation of the adjacency matrix can be stored. In at least one embodiment, system 202 can be configured to store the calculated trace approximation of the adjacency matrix. The control can move to the end.

[0126] FIG. 9 is a flowchart 900 showing an exemplary method for calculating a randomized trace approximation based on an asynchronous computing architecture, according to one embodiment of the present disclosure. FIG. 9 is described in conjunction with elements from FIGS. 1, 2, 3, 4A, 4B, 5, 6, 7, and 8. Referring to FIG. 9, flowchart 900 is shown. The operations of the exemplary method can be performed by any computing system, for example, by computer 102 of FIG. 1 or system 202 of FIG. 2. The operations of flowchart 900 can begin at 902.

[0127] 902. In 902, an adjacency matrix associated with a complex graph can be retrieved. The retrieved adjacency matrix can be of the first dimension. In at least one embodiment, system 202 can be configured to retrieve an adjacency matrix associated with a complex graph, where the retrieved adjacency matrix is of the first dimension. Details about the adjacency matrix are provided, for example, in FIGS. 2, 3, and 5.

[0128] At 904, at least one trigger point can be determined. The at least one trigger point can be associated with at least one of the computing power of the system or the detection of one or more faults associated with one or more calculations performed based on the adjacency matrix retrieved by the computer. In one embodiment, system 202 can be configured to compare the computing power of the system with a predetermined computing power threshold. If the computing power of the system is less than the predetermined computing power threshold, at least one trigger point can be determined. Details regarding the computing power and the predetermined computing power threshold are provided, for example, in FIG. 4A.

[0129] In another embodiment, system 202 can be configured to compare the result generated by the application of one or more mathematical operations to the acquired data with the ground truth. If the generated result is not equal to the ground truth, at least one trigger point can be determined. Details regarding the generated result and the ground truth are provided, for example, in FIG. 4B. In at least one embodiment, system 202 can be configured to determine at least one trigger point associated with at least one of the computing power of the system or the detection of one or more faults associated with one or more calculations performed based on the adjacency matrix retrieved by the system.

[0130] At 906, a random vector can be determined based on the retrieved adjacency matrix and the determined at least one trigger point. The random vector can have an expected value of zero. In at least one embodiment, system 202 can be configured to determine a random vector based on the retrieved adjacency matrix and the determined at least one trigger point, and the random vector has an expected value of zero. Details regarding the random vector are provided in FIG. 5.

[0131] At 908, a matrix vector can be generated based on the retrieved adjacency matrix and the determined random vector. In at least one embodiment, system 202 can be configured to generate a matrix vector based on the retrieved adjacency matrix and the determined random vector.

[0132] At 910, a first set of natural numbers based on a first dimension of the retrieved adjacency matrix can be determined. The total number of elements within the determined first set of natural numbers can be less than the first dimension of the retrieved adjacency matrix. In at least one embodiment, system 202 can be configured to determine a first set of natural numbers based on a first dimension of the retrieved adjacency matrix, where the total number of elements within the determined first set of natural numbers is less than the first dimension of the retrieved adjacency matrix.

[0133] At 912, a subset of entries from the generated matrix vector can be selected based on the determined first set of natural numbers. In at least one embodiment, system 202 can be configured to select a subset of entries from the generated matrix vector based on the determined first set of natural numbers.

[0134] At 914, a diagonal random matrix can be determined based on the sum of the canonical outer products formed by the selected subset of entries. In at least one embodiment, system 202 can be configured to determine a diagonal random matrix based on the sum of the canonical outer products formed by the selected subset of entries.

[0135] At 916, a trace approximation of the adjacency matrix can be calculated based on the determined diagonal random matrix and the selected subset of entries. In at least one embodiment, system 202 can be configured to calculate a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries. In at least one embodiment, system 202 can be configured to store the calculated trace approximation of the adjacency matrix.

[0136] In 918, the calculated trace approximation of the adjacency matrix can be stored. In at least one embodiment, system 202 can be configured to store the calculated trace approximation of the adjacency matrix. Control can pass to the end.

[0137] Various embodiments of the present disclosure can provide a non - transitory computer - readable medium and / or storage medium storing machine - and / or computer - executable instructions for operating a system (e.g., system 202) for randomized trace approximation calculation based on an asynchronous computing architecture. The instructions can cause the machine and / or computer to perform operations including procedures for retrieving an adjacency matrix associated with a complex graph, where the retrieved adjacency matrix is of a first dimension. The operations further include a procedure for determining a random vector based on the retrieved adjacency matrix, where the random vector has an expected value of zero. The operations further include a procedure for generating a matrix - vector based on the retrieved adjacency matrix and the determined random vector. The operations further include a step of determining a first set of natural numbers based on the first dimension of the retrieved adjacency matrix. The total number of elements within the determined first set of natural numbers is less than the first dimension of the retrieved adjacency matrix. The operations further include a procedure for controlling a first set of structures associated with one or more selected image sensors to re - position a rig around a 3D physical space. The operations further include a procedure for selecting a subset of entries from the generated matrix - vector based on the determined first set of natural numbers. The operations further include a procedure for determining a diagonal random matrix based on the sum of the canonical outer products formed by the selected subset of entries. The operations further include a procedure for calculating a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries, and a procedure for storing the calculated trace approximation of the adjacency matrix.

[0138] The descriptions of the various embodiments of the present disclosure are presented for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles of the embodiments, practical applications, or technical improvements found in the marketplace, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. 1. A computer-implemented method for computing a trace approximation of an adjacency matrix, comprising the steps of: retrieving, by a computer, an adjacency matrix associated with the complex graph, wherein the retrieved adjacency matrix is ​​of a first dimension; determining, by the computer, a random vector based on the retrieved adjacency matrix, the random vector having an expected value of zero; generating, by the computer, a matrix vector based on the retrieved adjacency matrix and the determined random vector; determining, by the computer, a first set of natural numbers based on the first dimension of the retrieved adjacency matrix, where a total number of elements in the determined first set of natural numbers is less than the first dimension of the retrieved adjacency matrix; selecting, by the computer, a subset of entries from the generated matrix vector based on the determined first set of natural numbers; determining, by the computer, a diagonal random matrix based on a sum of canonical cross products formed by a selected subset of the entries; calculating, by the computer, a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries; and storing, by the computer, the calculated trace approximation of the adjacency matrix. A computer-implemented method comprising:

2. 2. The computer-implemented method of claim 1, further comprising generating, by the computer, a solution to a graph analysis problem based on the calculated trace approximation of the adjacency matrix, where the complex graph is associated with the graph analysis problem.

3. 3. The computer-implemented method of claim 2, wherein the graph analysis problem corresponds to one of a graph traversal problem, a network routing problem, a social network analysis problem, a protein folding problem, a graph centrality problem, a sorting problem, or a graph classification problem.

4. 2. The computer-implemented method of claim 1, further comprising generating, by the computer, the matrix vector based on the retrieved adjacency matrix, the determined random vector and the first set of natural numbers, wherein at least one column of the retrieved adjacency matrix is ​​updated with a zero row vector in the generated matrix vector based on a determination that there is no corresponding row number associated with the at least one column of a first matrix vector from the first set of natural numbers.

5. determining, by the computer, a computational capability of at least one electronic device; and selecting, by the computer, a subset of the entries from the generated matrix vector based on the determined computational capability of the electronic device. The computer-implemented method of claim 1 , further comprising:

6. detecting, by the computer, one or more faults associated with one or more computations performed by at least one electronic device; and selecting, by the computer, a subset of the entries from the generated matrix vector based on the detection of the one or more faults. The computer-implemented method of claim 1 , further comprising:

7. selecting, by the computer, a subset of the entries from the generated matrix vector based on the determined first set of natural numbers; iteratively determining, by the computer, the diagonal random matrix based on the sum of the canonical cross products formed by corresponding subsets of the entries; and calculating, by the computer, the trace approximation of the adjacency matrix based on an average of a set of intermediate results obtained based on the iterative selection of a subset of the entries and the iterative determination of the diagonal random matrix. The computer-implemented method of claim 1 , further comprising:

8. The computer-implemented method of claim 1 , wherein the variance of the determined random vector is equal to one.

9. The computer-implemented method of claim 1 , wherein the random vector is sampled based on one of a Rademacher distribution or a Gaussian distribution.

10. Retrieving an adjacency matrix associated with a complex graph, where the retrieved adjacency matrix is ​​of a first dimension; determining a random vector based on the retrieved adjacency matrix, the random vector having an expected value of zero; generating a matrix vector based on the retrieved adjacency matrix and the determined random vector; determining a first set of natural numbers based on the first dimension of the retrieved adjacency matrix, where a total number of elements in the determined first set of natural numbers is less than the first dimension of the retrieved adjacency matrix; selecting a subset of entries from the generated matrix vector based on the determined first set of natural numbers; determining a diagonal random matrix based on a sum of canonical cross products formed by a selected subset of the entries; calculating a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries; and storing the calculated trace approximation of the adjacency matrix; The processor set that is configured to run A system comprising:

11. 11. The system of claim 10, wherein the set of processors is further configured to generate a solution to a graph analysis problem based on the computed trace approximation of the adjacency matrix, wherein the complex graph is associated with the graph analysis problem.

12. 12. The system of claim 11, wherein the graph analysis problem corresponds to one of a graph traversal problem, a network routing problem, a social network analysis problem, a protein folding problem, a graph centrality problem, a sorting problem, or a graph classification problem.

13. 11. The system of claim 10, wherein the set of processors is further configured to generate the matrix vector based on the retrieved adjacency matrix, the determined random vector and the first set of natural numbers, wherein at least one column of the retrieved adjacency matrix is ​​updated with a zero row vector in the generated matrix vector based on a determination that there is no corresponding row number associated with the at least one column of a first matrix vector from the first set of natural numbers.

14. The processor set further comprises: determining the computational capabilities of the system; and selecting a subset of the entries from the generated matrix vector based on the determined computational capacity of the system. is configured to run The system of claim 10.

15. The processor set further comprises: Detecting one or more faults associated with one or more computations performed by the system; and selecting a subset of the entries from the generated matrix vector based on the detection of the one or more faults. is configured to run The system of claim 10.

16. The processor set further comprises: iteratively selecting a subset of the entries from the generated matrix vector based on the determined first set of natural numbers; iteratively determining the diagonal random matrix based on the sum of the canonical cross products formed by corresponding subsets of the entries; and calculating the trace approximation of the adjacency matrix based on an average of a set of intermediate results obtained based on the iterative selection of a subset of the entries and the iterative determination of the diagonal random matrix. is configured to run The system of claim 10.

17. The processor set further comprises: selecting a subset of entries from the generated matrix vector based on processor set information, where the processor set information indicates a total number of processors in the processor set; and determining the diagonal random matrix based on the sum of canonical cross products formed by a subset of the selected entries; is configured to run The system of claim 10.

18. The system of claim 10 , wherein the variance of the determined random vector is equal to 1.

19. The system of claim 10 , wherein the random vector is sampled based on one of a Rademacher distribution or a Gaussian distribution.

20. 1. A computer program for computing a trace approximation of an adjacency matrix, comprising embodied program instructions, the program instructions comprising: retrieving the adjacency matrix associated with a complex graph, where the retrieved adjacency matrix is ​​of a first dimension; determining a random vector based on the retrieved adjacency matrix, the random vector having an expected value of zero; generating a matrix vector based on the retrieved adjacency matrix and the determined random vector; determining a first set of natural numbers based on the first dimension of the retrieved adjacency matrix, where a total number of elements in the determined first set of natural numbers is less than the first dimension of the retrieved adjacency matrix; selecting a subset of entries from the generated matrix vector based on the determined first set of natural numbers; determining a diagonal random matrix based on a sum of canonical cross products formed by a selected subset of the entries; calculating the trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries; and storing the calculated trace approximation of the adjacency matrix. executable by the system to cause the system to execute Computer program.

21. 1. A system comprising: Retrieving an adjacency matrix associated with a complex graph, where the retrieved adjacency matrix is ​​of a first dimension; determining at least one trigger point associated with at least one of the computational capabilities of the system or the detection of one or more faults associated with one or more computations performed by the system based on the retrieved adjacency matrix; determining a random vector based on the retrieved adjacency matrix and the determined at least one trigger point, the random vector having an expected value of zero; generating a matrix vector based on the retrieved adjacency matrix and the determined random vector; determining a first set of natural numbers based on the first dimension of the retrieved adjacency matrix, where a total number of elements in the determined first set of natural numbers is less than the first dimension of the retrieved adjacency matrix; selecting a subset of entries from the generated matrix vector based on the determined first set of natural numbers; determining a diagonal random matrix based on a sum of canonical cross products formed by a selected subset of the entries; calculating a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries; and storing the calculated trace approximation of the adjacency matrix; The processor set that is configured to run A system comprising:

22. 22. The system of claim 21 , wherein the set of processors is further configured to generate a solution to a graph analysis problem based on the computed trace approximation of the adjacency matrix, where the complex graph is associated with the graph analysis problem.

23. 23. The system of claim 22, wherein the graph analysis problem corresponds to one of a graph traversal problem, a network routing problem, a social network analysis problem, a protein folding problem, a graph centrality problem, a sorting problem, or a graph classification problem.

24. The processor set further comprises: comparing the computational power of the system to a predetermined computational power threshold; and determining at least one trigger point based on said comparison; is configured to run 24. A system according to any one of claims 21 to 23.

25. 1. A computer-implemented method for computing a trace approximation of an adjacency matrix, comprising the steps of: retrieving, by a computer, an adjacency matrix associated with the complex graph, wherein the retrieved adjacency matrix is ​​of a first dimension; determining, by the computer, at least one trigger point associated with at least one of: a computational capacity of a system, or detecting one or more faults associated with one or more calculations performed by the computer based on the retrieved adjacency matrix; determining, by the computer, a random vector based on the retrieved adjacency matrix and the determined at least one trigger point, the random vector having an expected value of zero; generating, by the computer, a matrix vector based on the retrieved adjacency matrix and the determined random vector; determining, by the computer, a first set of natural numbers based on the first dimension of the retrieved adjacency matrix, where a total number of elements in the determined first set of natural numbers is less than the first dimension of the retrieved adjacency matrix; selecting, by the computer, a subset of entries from the generated matrix vector based on the determined first set of natural numbers; determining, by the computer, a diagonal random matrix based on a sum of canonical cross products formed by a selected subset of the entries; calculating, by the computer, a trace approximation of the adjacency matrix based on the determined diagonal random matrix and the selected subset of entries; and storing, by the computer, the calculated trace approximation of the adjacency matrix. A computer-implemented method comprising: