Energy-reduced random number generation for dynamic grid stabilization of power systems
By configuring auxiliary computing loads to provide grid stability and using proof of work to calculate the generated random numbers to perform calculation tasks that require random numbers as inputs, the problems of calculating load energy use and carbon emissions are solved, and efficient energy utilization and carbon minimization are achieved.
Patent Information
- Application Number
- CN202411522058.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-11-30
- Filing Date
- 2024-10-29
- Publication Date
- 2025-05-30
AI Technical Summary
The prior art is difficult to effectively reduce energy use and carbon emissions related to computing loads (such as blockchain proof-of-work computing and scientific machine learning computing), especially when power systems require stable and renewable energy use increases.
Efficient energy utilization and carbon minimization are achieved by configuring auxiliary computing loads to provide grid stability and utilizing proof-of-work calculations to calculate the generated random numbers to perform calculation tasks that require random numbers as inputs.
This method not only reduces the energy and carbon cost of the calculation load, but also improves the overall efficiency and reliability of the power system by effectively utilizing renewable energy and reducing the instability of the power grid.
Smart Images

Figure CN120066456A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to systems and methods for reducing power usage, reducing carbon emissions, and providing grid stability for a power system, while also maximizing the efficiency of scientific machine learning (SciML), AI, and other computationally intensive tasks. More specifically, the present disclosure relates to systems and methods for reducing the combined energy cost of two or more computational loads (e.g., computational loads configured to act as interruptible auxiliary power loads for grid stability), where the first computational load includes a proof-of-work task, and the second computational load uses one or more random numbers as inputs. Background Art
[0002] As industrial sectors (e.g., transportation) transition from fossil fuels to electricity, and as generators use more renewable energy sources such as wind and solar, challenges associated with power loads have emerged. For example, wind and solar energy sources are not always available on demand. In some cases, a wind source may not generate electricity, and in other cases it may be capable of generating more electricity than currently needed. To efficiently transition to renewable energy, it is desirable to become better at predicting power availability, coordinating power usage, and making power consumption flexible to ensure that the power system remains stable and reliable.
[0003] The growth of renewable energy has also been accompanied by the growth of distributed generation (e.g., residences with solar panels on their rooftops), distributed storage (e.g., home battery systems), and advanced demand response capabilities (e.g., home consumers adjusting their energy usage based on supply and price changes). In some cases, all of these elements can be managed together, making the power grid more networked and more complex.
[0004] An important challenge is the energy use associated with computing, which accounts for a significant portion of global energy use. Example computations that use large amounts of energy include the proof-of-work computations associated with blockchain systems and scientific and machine learning computations that require random numbers as inputs (e.g., Monte Carlo simulations). Some estimates suggest that by 2030, the combined energy cost of blockchain computing, artificial intelligence / machine learning, and other scientific computations could grow to 20% of all global energy use. For example, the proof-of-work computations associated with many blockchain systems alone are estimated to use more than 100 terawatt-hours (TWh) of electricity globally each year, with approximately 35% of the blockchain system proof-of-work hashes attributable to the United States. See, e.g., S. Shankar, Energy Estimates Across Layers of Computing, https: / / arxiv.org / ftp / arxiv / papers / 2310 / 2310.07516.pdf. Previous attempts to mitigate the energy use associated with blockchain system proof-of-work computations have not been successful. For example, some countries have attempted to completely ban proof-of-work computations, but the main effect of such bans has been to shift proof-of-work computations to countries where they are not banned, rather than significantly reducing the popularity or energy cost of proof-of-work computations. Some researchers have proposed using cryptocurrencies that require useful proof-of-work rather than just the proof-of-work required by blockchain systems. However, blockchain systems remain the dominant players in the cryptocurrency market.
[0005] Another major and growing source of computing load is artificial intelligence. As AI has been integrated into search engines such as Bing and Bard, more computing power is needed to train and run the models. Experts say this could increase the computing power and energy used per search by up to five times. Additionally, AI models need to be continuously retrained to keep up with the latest information.
[0006] In many cases, AI and machine learning computations, computational fluid dynamics simulations, and other intensive computational operations require the use of pseudo-random numbers as inputs. For example, many algorithms used to train machine learning models are Monte Carlo algorithms, where the actions taken during training are at least partially based on random input values. As another example, many algorithms used to train image generation models require adding random noise to the training images. Additionally, algorithms used to use machine learning models after training sometimes require random values. For example, text generators such as ChatGPT and Bard can sometimes use random number inputs to randomly select an output from multiple options.
[0007] In summary, scientific computations that require pseudo-random numbers as input (including, for example, machine learning) are estimated to use dozens of terawatt-hours globally each year, and it is estimated that 10% of the energy cost of such computations can be attributed to the generation of random numbers used as input for these computations. Thus, in some cases, reducing the energy cost of random number generation can save more than one terawatt-hour of energy use per year, which can translate to energy cost savings of more than $100 million. In some cases, reducing energy use can also reduce the amount of pollution associated with the production of energy from certain energy sources. SUMMARY OF THE INVENTION
[0008] Aspects and advantages of the systems and methods according to the present disclosure will be set forth in part in the following description, or may be obvious from the description, or may be learned by practice of the technology.
[0009] According to one embodiment, an example method is provided. The example method includes obtaining one or more work instructions associated with a proof-of-work protocol. The example method includes performing one or more first tasks at least in part based on the work instructions. The example method includes determining one or more random values or pseudo-random values based on one or more values generated by one or more computing devices during the one or more first tasks. The example method includes performing one or more second tasks different from the one or more first tasks based on the one or more random values or pseudo-random values.
[0010] According to another embodiment, a computing system is provided. The computing system includes one or more processors and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the computing system to perform one or more operations. The operations include obtaining one or more work instructions associated with a proof-of-work protocol. The operations include performing one or more first tasks at least in part based on the work instructions. The operations include determining one or more random values or pseudo-random values based on one or more values generated by one or more computing devices during the one or more first tasks. The operations include performing one or more second tasks different from the one or more first tasks based on the one or more random values or pseudo-random values.
[0011] According to another embodiment, one or more non-transitory computer-readable media are provided. The non-transitory computer-readable media store instructions that can be executed by one or more computing systems to perform one or more operations. The operations include obtaining one or more work instructions associated with a proof-of-work protocol. The operations include performing one or more first tasks at least in part based on the work instructions. The operations include determining one or more random values or pseudo-random values based on one or more values generated by the one or more computing devices during the one or more first tasks. The operations include performing one or more second tasks different from the one or more first tasks based on the one or more random values or pseudo-random values.
[0012] These and other features, aspects, and advantages of the methods of the present invention will become better understood with reference to the following description and the appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the technology of the present invention and, together with the description, serve to explain the principles of the technology of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] The present specification sets forth a complete and enabling disclosure of the systems and methods of the present invention, including the best mode of making and using the systems and methods of the present invention, to one of ordinary skill in the art, with reference to the accompanying drawings, in which:
[0014] Figure 1 is a schematic diagram of a computing system according to an embodiment of the present disclosure;
[0015] Figure 2 is a schematic diagram of a power grid stability system according to an embodiment of the present disclosure;
[0016] Figure 3 is a schematic diagram of a computing system according to an embodiment of the present disclosure;
[0017] Figure 4 is a chart illustrating the results of an embodiment according to the present disclosure.
[0018] Figure 5 is a flowchart of a method according to an embodiment of the present disclosure.
[0019] Figure 6 is a flowchart of a method according to an embodiment of the present disclosure.
[0020] Figure 7 is a flowchart of a method according to an embodiment of the present disclosure. DETAILED DESCRIPTION
[0021] Reference will now be made in detail to embodiments of the systems and methods of the present invention, one or more examples of which are illustrated in the accompanying drawings. Each example is provided by way of explanation of the technology of the present invention, and not as a limitation thereof. In fact, it will be apparent to those skilled in the art that modifications and variations can be made in the technology of the present invention without departing from the scope or spirit of the technology of the present invention as protected by the claims. For example, features illustrated or described as part of one embodiment can be used in another embodiment to yield yet another embodiment. Accordingly, the present disclosure is intended to cover such modifications and variations that fall within the scope of the appended claims and their equivalents.
[0022] The term "exemplary" is used herein to mean "serving as an example, instance, or illustration". Any particular implementation described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other particular implementations. Additionally, unless otherwise specifically stated, all implementations described herein should be considered exemplary.
[0023] The detailed description uses numerical and alphabetical names to refer to features in the drawings. Similar or like names in the drawings and the description have been used to refer to similar or like components of the present invention. As used herein, the terms "first", "second", and "third" may be used interchangeably to distinguish one component from another, and are not intended to denote the position or importance of the individual components.
[0024] Terms with approximate meanings (such as "about", "approximately", "substantially", and "essentially") are not limited to the specified exact values. In at least some cases, the approximate language may correspond to the precision of the instrument used to measure the value, or the precision of the method or machine used to construct or manufacture the component and / or system. For example, the approximate language may refer to a tolerance of 1%, 2%, 4%, 5%, 10%, 15%, or 20% within an individual value, a range of values, and / or the end values defining a range of values. When used in the context of an angle or direction, such terms include within ten degrees of the stated angle or direction. For example, "substantially vertical" includes a direction within ten degrees of vertical in any direction (e.g., clockwise or counterclockwise).
[0025] Unless otherwise specified herein, the terms "coupled," "fixed," "attached," etc. refer to direct coupling, fixing, or attachment, as well as indirect coupling, fixing, or attachment through one or more intermediate components or features. As used herein, the terms "comprising," "including," "having," or any other variation thereof are intended to cover non-exclusive inclusion. For example, a process, method, article, or apparatus that includes a list of features is not necessarily limited to those features, but may include other features not expressly listed or inherent to such process, method, article, or apparatus. Additionally, unless expressly stated to the contrary, "or" refers to inclusive or and not exclusive or. For example, the condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or absent); A is false (or absent) and B is true (or present); and both A and B are true (or present).
[0026] Herein and throughout the specification and claims, unless the context or language indicates otherwise, range limitations are combined and interchanged, and such ranges are recognized and include all sub-ranges subsumed therein. For example, all ranges disclosed herein include the end values, and the end values can be combined independently of each other.
[0027] Overview
[0028] The present disclosure generally relates to systems and methods for energy conservation, carbon minimization, and grid stability with respect to computing energy loads. More specifically, the present disclosure relates to systems and methods for reducing the energy and carbon costs of computing loads (e.g., auxiliary computing loads configured for power grid stability, stand-alone high-performance computing centers, etc.), where the computing loads can include one or more blockchain proof-of-work computations and one or more computational or simulation tasks (e.g., machine learning, artificial intelligence, or scientific computing) that require pseudo-random numbers as inputs.
[0029] In an exemplary aspect of the present disclosure, one or more auxiliary computing loads can be configured to provide on-demand grid stability, where excess power (e.g., associated with the power grid; associated with a local system (e.g., a home power generation system); etc.) can be effectively used to perform one or more useful computations. For example, one or more computing devices can be operably connected to a control system associated with one or more power systems. The control system can monitor the available amount of electrical power associated with one or more power sources of the power system. The control system can also monitor the electrical power demand associated with one or more power loads of the power system. In some cases, the control system can determine whether to initiate a computation (e.g., a machine learning computation; a blockchain proof-of-work computation; etc.) based on a comparison between the available amount of electrical power and the electrical power demand.
[0030] In some cases, on-demand grid stability may include routing computations to specific computing systems based on power availability data. For example, in some cases, a control system may be operatively connected to multiple computing systems (e.g., computing devices; data centers; portable modular sliders that include one or more computing devices and are configured for grid stability; etc.). In these cases, the control system may, for example, obtain a computing load configured to run immediately. The control system may, for example, assign the computing load to one or more of the multiple computing systems (e.g., a data center) based on a comparison between multiple respective available power amounts (e.g., the available power amount from a wind farm operatively connected to a data center; etc.) associated with the multiple computing systems. The assignment may also be based on, for example, a comparison between multiple respective power demand amounts associated with the multiple computing systems. The assignment may also be based on, for example, one or more predictions of future demand or future energy availability.
[0031] In some cases, the control system may perform an adaptive scheduling of tasks that do not require immediate execution. For example, the control system may obtain a computing load that includes computations that do not require immediate execution (e.g., that may be executed at any time the next day, next week, next month, etc.). For example, the control system may determine whether to initiate the computations immediately based on a comparison between: the current available power amount; the current power demand amount; one or more predicted future available power amounts; and one or more predicted future power demand amounts. In some cases, the control system may determine whether to pause computations that have already been initiated based on such data. In some cases, the control system may determine a specific time to initiate the computations based on one or more power forecasts.
[0032] In an exemplary aspect of the present disclosure, the computational load may include computations configured to utilize a computing system (e.g., including one or more application-specific integrated circuits (ASICs)) that is configured to perform a proof-of-work computation (e.g., blockchain proof-of-work) to generate random numbers at a reduced energy cost for use in one or more computations that require random numbers as input (e.g., machine learning computations; Monte Carlo computations; scientific computations; etc.). For example, in some cases, the work instructions associated with the blockchain proof-of-work protocol may be modified such that a first computing system configured for proof-of-work computations outputs, in addition to the proof-of-work output associated with the original work instructions, a plurality of random values or pseudo-random values (e.g., a sequence of cryptographic hash outputs having a random output distribution or a pseudo-random output distribution). The plurality of output values may be communicated to a control computing system or a second computing system that is configured to perform one or more computations that require random numbers as input. Based on the output values, the control computing system or the second computing system may generate random values or pseudo-random values that are configured to be used as input in one or more computations that require random numbers as input.
[0033] Generating values configured to be used as input may include, for example, scaling the values output by the first computing system. For example, the output values may be associated with a maximum possible output value and a minimum possible output value in some cases. In some cases, computations that require random numbers as input may be associated with a minimum acceptable input value (e.g., 0.0 for some Monte Carlo sampling computations) and a maximum acceptable input value (e.g., 1.0). In these cases, the scaled input values may be calculated based on the minimum input value and the output values and the maximum input value and the output values. For example, the scaled input value may be equal to:
[0034]
[0035] In some cases, generating values configured to be used as input may include, for example, sampling methods that are configured to sample from a probability distribution (e.g., a two-dimensional probability distribution) based on a plurality of one-dimensional random inputs. In some cases, generating values configured to be used as input may include rejection sampling. In some cases, generating values configured to be used as input may include Metropolis-Hastings sampling. In some cases, generating values configured to be used as input may include Gibbs sampling.
[0036] In some specific implementations, the random numbers generated from the proof-of-work values may be utilized to support a plurality of computations that require random numbers as input (e.g., by storing and reusing the random numbers; by operably connecting the proof-of-work system to two or more randomness-based computing systems; etc.).
[0037] In some specific implementations, the integrated architecture may utilize one or more proof-of-work mining ASICs combined with one or more GPUs (e.g., combined into a computing system or computing device), or other computing platforms or ASICs, to provide a net energy gain in the dual computational use of random numbers created at low energy costs.
[0038] The systems and methods of the present disclosure have various technical effects and benefits. For example, the random number generation method of the present disclosure uses less energy than existing random number generation methods. For example, experiments according to the present disclosure compare the energy costs associated with separately performed blockchain computing and Monte Carlo computing with the energy costs of combined blockchain-Monte Carlo computing using random numbers generated according to the present disclosure. The systems and methods of the present disclosure are associated with lower combined energy costs under various experimental conditions.
[0039] As another example, the scheduling method of the present disclosure can effectively use idle renewable energy and minimize the carbon emissions associated with the computational load. The systems and methods of the present disclosure can also provide grid stability through an interruptible "shock absorber for the power grid", which can dissipate wasted energy while providing useful computational output. Additionally, the systems and methods of the present disclosure can reduce the climate impact associated with proof-of-work blockchain computing and the growing fields of artificial intelligence and machine learning by reducing the combined computational costs associated with blockchain and machine learning computing.
[0040] Existing methods for reducing computational energy costs typically focus on separately optimizing blockchain computing or machine learning computing in ways that reduce energy use or reduce the carbon footprint associated with one type of computing or the other (rather than a combination of both). For example, some researchers have proposed energy-aware machine learning, which can optimize machine learning models to use less energy during inference. Similarly, the Kolmogorov learning cycle can measure how efficiently a machine learns with respect to the amount of energy used (e.g., the ratio between "entropy reduction" and the energy used). In the context of blockchain, specialized hardware such as application-specific integrated circuits (ASICs) for computing cryptographic hashes has significantly reduced the per-hash energy cost of computing the cryptographic hashes associated with the proof-of-work calculations of blockchain systems. However, in the context of combined computing resources connected to a power grid with a dynamically changing load, little existing work has studied energy use holistically.
[0041] Advantageously, the systems and methods of the present disclosure can be used in combination with existing optimization methods while providing additional energy savings and environmental benefits. For example, in some cases, an excess of renewable energy can be used and random numbers generated at a reduced energy cost relative to existing random number generation can be used to perform Kolmogorov training on an energy-aware machine learning algorithm. In these cases, the systems and methods of the present disclosure can be associated with a reduced energy cost compared to existing energy optimization methods alone.
[0042] Example System
[0043] Referring now to the drawings, Figure 1 FIG. illustrates a schematic diagram of one embodiment of a computing system 100. A control system 102 can provide one or more work instructions 104 to a proof-of-work system 106. The proof-of-work system 106 can generate one or more generated values 108 based on the work instructions 104 and communicate the one or more generated values to the control system 102 or a randomness-based computing system 110. Based on the generated values 108, the control system 102 or the randomness-based computing system 110 can, in some cases, determine one or more random values 112 that are configured to be used in randomness-based computations. The randomness-based computing system 110 can then use the random values 112 to generate one or more computation results 114.
[0044] The control system 102 can be or can include, for example, one or more computing devices or one or more processors (e.g., a CPU, etc.). In some cases, the control system 102 can be or can include dedicated control hardware configured to control one or more application-specific integrated circuits, where the application-specific integrated circuits are configured to perform one or more proof-of-work tasks (e.g., cryptographic hashing, etc.). In some cases, the control system 102 can include one or more proof-of-work control cards (e.g., Antminer S9i, etc.). In some cases, the functionality of the control system 102 can be integrated into the proof-of-work system 106 or the randomness-based computing system 110.
[0045] The work instruction 104 may be or may include, for example, one or more work instructions associated with a proof-of-work protocol (e.g., a blockchain proof-of-work protocol). In some cases, the work instruction 104 may be a work instruction that is modified partly based on a work instruction associated with a blockchain proof-of-work protocol. For example, in some cases, a blockchain proof-of-work protocol may be associated with a difficulty level, and the rate of generating an output may be inversely proportional to the difficulty level configured by one or more work instructions. In these cases, modifying the work instruction may include reducing the difficulty level associated with the blockchain work instruction such that outputs are received more frequently from the proof-of-work system. The control system 102 may then process the generated value 108 to find one or more generated values that satisfy the unmodified difficulty level to provide to the blockchain network. In some cases, the work instruction 104 (e.g., the modified work instruction) may be configured to cause the proof-of-work system 106 to generate one or more generated values 108 having random characters or pseudo-random characters. For example, in some cases, the work instruction 104 may be configured to request a large number (e.g., thousands per second, etc.) of cryptographic hash values having random characters or pseudo-random characters as outputs.
[0046] The proof-of-work system 106 may be or may include, for example, one or more computing devices that include one or more processors (e.g., CPU, GPU, application-specific integrated circuit, etc.). In some cases, the proof-of-work system 106 may be or may include one or more application-specific integrated circuits (ASICs) configured to perform proof-of-work tasks (e.g., an ASIC configured to generate cryptographic hashes (e.g., Antminer hash boards); GPU; etc.). In some cases, the proof-of-work system 106 may be the control system 102, may include the control system, may implement the control system, may be implemented by the control system, may be included in the control system, may be the same as or different from the control system.
[0047] The generated value 108 may include, for example, computer-readable data. In some cases, the generated value 108 may include computer-readable data having random characters or pseudo-random characters (e.g., a sequence of characters, bits, numbers, etc. that satisfy one or more randomness statistical tests).
[0048] The randomness-based computing system 110 may include, for example, one or more computing devices configured to perform computations that require one or more random values (e.g., random numbers) as inputs. In some cases, the randomness-based computing system may include one or more application-specific integrated circuits (ASICs) configured to perform floating-point operations (e.g., GPUs, ASICs configured for matrix multiplication, etc.).
[0049] In some cases, the proof-of-work system 106 can be the control system 102 or the proof-of-work system 106, can include the control system or the proof-of-work system, can implement the control system or the proof-of-work system, can be implemented by the control system or the proof-of-work system, can be included in the control system or the proof-of-work system, and can be the same as or different from the control system or the proof-of-work system. For example, in some cases, a single computing system or even a single processor (e.g., a CPU) can execute one or more functions of the control system 102, the proof-of-work system 106, and the randomness-based computing system 110. It should be understood that a separate dedicated processor (e.g., an ASIC) may execute proof-of-work and randomness-based functions more efficiently than a less dedicated processor (e.g., a CPU, etc.) in some cases, but a single-processor system may be appropriate in some cases (e.g., using a dedicated ASIC configured to execute all three functions, using a CPU with certain anti-ASIC proof-of-work protocols, etc.) and may reduce latency and energy costs associated with communication between processors in some cases.
[0050] The random value 112 can include, for example, computer-readable data that is configured to be input into a computation that requires a random value as an input. For example, in some cases, the random value 112 can include one or more random or pseudo-random numbers (e.g., a uniform random number between 0.0 and 1.0 for Monte Carlo computations, etc.).
[0051] Generating the random value 112 can include, for example, obtaining a generated value 108, where at least a portion of the generated value 108 is characterized by random or pseudo-random characters (e.g., satisfying one or more randomness statistical tests). Generating the random value 112 can also include scaling the generated value 108 or a random or pseudo-random portion of the generated value 108 to a value configured to be used by the randomness-based computing system 110. For example, in some cases, the generated value 108 can include one or more random or pseudo-random ASCII codes that encode text-based data (e.g., 256 ASCII values that encode 256 characters). In these cases, each ASCII code can be characterized by a minimum possible value (e.g., 000, representing the "null" character) and a maximum possible value (e.g., 255, representing a special character like "y" with a "diaeresis" on it). In some cases, randomness-based computations may require input random variables characterized by a minimum and a maximum value. For example, some Monte Carlo computations can be based on a random value 112 between 0.0 and 1.0, which can be used to randomly determine an action based on one or more action probabilities. In these cases, the generated value 108 can be scaled to generate the random value 112 according to the following equation:
[0052]
[0053] In some cases, generating one or more random values 112 may include a more complex sampling process (e.g., to produce a more complex distribution of random values 112, e.g., a multi-dimensional distribution associated with random values in each dimension, etc.). Example sampling processes may include rejection sampling, Metropolis-Hastings sampling, Gibbs sampling, and any other statistical sampling process configured to transform one-dimensional random values into a more complex distribution.
[0054] Rejection sampling may include determining a first random value associated with a first dimension (e.g., by scaling a generated value 108); determining a second random value associated with a second dimension (e.g., by scaling a generated value 108); comparing the first value and the second value with a curve describing a probability distribution (e.g., a two-dimensional probability distribution) from which sampling will occur; and accepting the first value and the second value if the point described by the first value and the second value falls within the probability distribution. In some cases, the same process may be applied to probability distributions having more than two (e.g., three, four, etc.) dimensions. In some cases (e.g., for probability distributions with a large number of dimensions), Metropolis-Hastings sampling or Gibbs sampling may be used instead of or in addition to rejection sampling.
[0055] In some cases, random values 112 may be generated based on values other than the generated value 108. For example, the computational resources required to perform these operations may, in some cases, provide an opportunity to create a true random number generator based on measurements of the operating system. In some cases, measurements taken at discrete locations under operating conditions (such as temperature, pressure, and flow rate) may provide multiple random data streams to provide random numbers (e.g., cryptographically secure random numbers). In addition to these easily measurable sequences, sequences with higher entropy may be obtained by measuring physical phenomena occurring in each computational unit in a computational unit (e.g., the movement of bubbles within a turbulent eddy associated with the cooling system of the computing system 100, etc.). If desired, these data streams may be further combined after one or more proofs by Varamani and Santha to form a sequence with higher entropy.
[0056] The computation result 114 may include, for example, computer-readable data generated during a computation that requires a random value as an input. For example, in some cases, the computation result 114 may include one or more results of machine learning computations (e.g., a trained machine learning model or model update as a result of a machine learning training computation; a machine learning output as a result of a machine learning inference computation; etc.) or scientific computations (e.g., molecular dynamics simulations, etc.).
[0057] Figure 2Schematic diagram of a power grid stability system according to an embodiment of the present disclosure. The power grid may include a power source 202 and a power load 204. The power source may include a continuous source 206 and an auxiliary source 208, while the power load may include a continuous load 210 and an auxiliary load 212. The power grid stability system 214 may monitor power availability data 216 and power usage data 218 associated with the power source 202 and the power load 204, respectively. Based on the data 216, 218, the power grid stability system 214 may send instructions 220 to the power source 202 and the power load 204. In one exemplary scenario, the instructions 220 may include an instruction to start operating the auxiliary load 212 (e.g., the computing system 100 or other auxiliary load 212) to effectively use the stranded power 222 from the continuous power source 206.
[0058] The power source 202 may be, for example, any system (e.g., device, machine, equipment, etc.) capable of generating power (e.g., electricity) and operably connected to a power system (e.g., a public power grid, a private power grid, an off-grid power system, etc.).
[0059] The power load 204 may be, for example, any system (e.g., device, machine, equipment, etc.) configured to use power (e.g., electricity) and operably connected to a power system (e.g., a public power grid, a private power grid, an off-grid power system, etc.).
[0060] The continuous power source 206 may include, for example, a power source configured to operate continuously for a period of time (e.g., several hours; several days; several minutes, etc.). In some cases, the continuous power source 206 may include a power source that can be disabled, but disabling may be difficult, inconvenient, or otherwise undesirable. For example, in the case of the continuous power source 206 (e.g., a wind turbine; a solar panel), power can be generated at little or no cost (e.g., financial cost, environmental cost, etc.). If the power from the continuous power source 206 could otherwise be effectively used, it may be undesirable to disable the continuous power source. In some cases, the continuous power source 206 may include a renewable power source (e.g., wind, solar, hydroelectric, geothermal, biomass, ocean energy, etc.), where "renewable" means that the power source obtains its energy from a source that can be replenished by natural processes (e.g., plant growth for plant-based fuels, night / day cycles for solar energy, etc.). "Renewable" is contrasted with, for example, fossil fuels, which take millions of years to form and are thus effectively non-renewable. In some cases, the renewable power source may be a variable renewable power source, whose output capacity varies over time due to changes in the environment of the power source. For example, the output capacity of a wind source, a solar energy source, or an ocean energy source may change due to weather; hydroelectric energy or ocean energy may depend on aquatic conditions (e.g., precipitation, waves, currents, tides, etc.). In another example case, the continuous power source 206 may take a certain amount of time (e.g., several hours) to reconfigure to output a different amount of electrical power (e.g., greater than, less than, zero) than the amount currently being generated. In some cases, this amount of time may be longer than the amount of time associated with one or more changes in the power demand or power usage of the power system (e.g., minutes, seconds, etc.).
[0061] The auxiliary power source 208 may include, for example, a power source that can be more conveniently (e.g., quickly, inexpensively, at a reduced environmental cost, etc.) activated, disabled, or adjusted (e.g., configured to output an increased / decreased amount of electrical power) compared to one or more continuous power sources 206. In some cases, the auxiliary power source 208 may be configured to be enabled, disabled, or adjusted as needed to adjust the power output in response to power usage or demand.
[0062] Similarly, the continuous power load 210 may include, for example, a power load configured to operate continuously for a period of time (e.g., several hours; several days; several minutes, etc.). In some cases, the continuous power load 210 may include a power source that can be disabled, but disabling may be difficult, inconvenient, or otherwise undesirable. For example, in some cases, the continuous power load 210 may include an emergency or safety-sensitive power load (e.g., associated with emergency medical rescue; heating and cooling; time-sensitive industrial or computing operations; etc.), or a load associated with a person (e.g., a power consumer) who may not be able or willing to reduce energy use in response to a change in the power load.
[0063] The auxiliary power load 212 may include, for example, a power load that can be more conveniently (e.g., quickly, inexpensively, at a reduced environmental cost, etc.) activated, disabled, or adjusted (e.g., configured to output an increased / decreased amount of electrical power) compared to one or more continuous power loads 210. In some cases, the auxiliary power load 212 may be configured to be enabled, disabled, or adjusted as needed to adjust the power output in response to power use or demand. Non-limiting examples may include, for example, non-time-sensitive or non-location-sensitive computing operations (e.g., machine learning training operations, which can be conveniently run during off-peak hours); power loads associated with a "smart home" system, which are configured to automatically adjust power use in response to price changes associated with demand changes; etc.
[0064] In some cases, the auxiliary power load 212 may include a network (e.g., a "power grid") of computing devices (e.g., the computing system 100) configured to distribute computing tasks across many machines. In these cases, the power grid of networked computing devices may be configured to adjust the power load by: diverting one or more computing tasks away from one or more computing devices operably connected to one or more power systems characterized by a power shortage, and directing the one or more computing tasks towards one or more computing devices operably connected to one or more power systems characterized by a power surplus (e.g., stranded power 222). In this way, for example, the energy cost and pollution cost associated with one or more computing tasks may be reduced.
[0065] The availability data 216 may include, for example, computer-readable data describing the current available electrical power of one or more power sources 202. This may include, for example, the current electrical power generated by one or more continuous power sources 206 and auxiliary power sources 208; the maximum available additional electrical power of auxiliary power sources 208 that are not currently operating at full capacity; etc. In some cases, the availability data 216 may include human-readable data configured to notify an operator of power use.
[0066] Usage data 218 may include, for example, computer-readable data describing one or more current amounts of electricity being used by one or more electrical loads 204. This may include, for example, the current amount of electricity being used by one or more continuous electrical loads 210 and auxiliary electrical loads 212; the maximum additional amount of electricity that can be used by one or more auxiliary electrical loads 212 that are not currently operating at full capacity; the maximum reduction in electricity usage associated with one or more auxiliary loads 212 operating above minimum capacity; and so on. In some instances, usage data 218 may include human-readable data configured to notify an operator of electricity usage.
[0067] Instructions 220 may include, for example, computer-readable data or human-readable data configured to cause one or more power sources 202 or one or more electrical loads 204 to change current behavior (e.g., start or stop generating electricity; start or stop using electricity; increase or decrease the amount of electricity used or generated; and so on). Non-limiting illustrative examples may include, for example, computer-readable instructions configured to cause one or more processors to perform operations to change the current behavior of power source 202 or electrical load 204; consumer alerts configured to cause one or more consumers to reduce electricity usage; human-readable instructions configured to cause one or more power plant employees to perform adjustments; and so on. In some cases, instructions 220 may include carbon minimization scheduling algorithms or instructions for energy-aware machine learning.
[0068] As Figure 2 shown, stranded electricity 222 may include, for example, excess electricity from continuous power source 206 that is not currently being used by one or more electrical loads 204. Non-limiting illustrative examples may include sustainable electricity (e.g., generated by a wind turbine) that is not currently being used but could be effectively used by one or more auxiliary loads 212. Although Figure 2 a stranded electricity scenario is depicted in which auxiliary loads are activated in response to an electricity surplus, those skilled in the art will recognize that other scenarios are possible (e.g., disabling auxiliary load 212 or enabling auxiliary power source 208 in response to a shortage; reducing or increasing usage rather than enabling or disabling; and so on).
[0069] Figure 3 is a schematic diagram of a computing system 300 according to an embodiment of the present disclosure. Figure 3Depicts a computing system 300 that receives a work instruction 104 from a network 301. The work instruction can be sent to one or more CPUs 302 or one or more proof-of-work control cards 304. Based on the work instruction 104, the CPU 302 or the proof-of-work control card 304 can generate a modified work instruction 306, which can be sent to one or more proof-of-work application-specific integrated circuits (ASICs) 308 via a universal asynchronous receiver-transmitter (UART) 310 or another protocol. The proof-of-work ASIC 308 can then generate a generated value 108 and send the generated value to the proof-of-work control card via the UART 310. The proof-of-work control card can then send the generated value 108 to, for example, one or more floating-point ASICs 312 via a connection such as PCIe 314. The floating-point ASIC 312 can then use the generated value 108 to perform calculations that require a random number as an input (e.g., machine learning calculations; scientific calculations; etc.).
[0070] Although Figure 3 depicts specific hardware components and specific communication standards, those skilled in the art will recognize that other hardware components and communication standards can be used without departing from the scope of the present disclosure.
[0071] The computing system 300 can include, for example, one or more computing devices (e.g., servers; desktop computers; laptop computers; virtual currency proof-of-work systems; etc.). In some cases, the computing system 300 can be the computing system 100, can include the computing system, or can be included in the computing system.
[0072] The network 301 can be or can include, for example, the Internet or any other network configured to transfer computer-readable data between computing devices (e.g., LAN, WAN, peer-to-peer network, etc.).
[0073] The CPU 302 can include, for example, any hardware configured to operate as a CPU (e.g., microprocessor, microcontroller, soft-core processor, etc.).
[0074] The proof-of-work control card 304 can include, for example, any hardware or combination of hardware configured to control one or more ASICs by sending one or more instructions to the one or more proof-of-work ASICs and in turn receiving one or more values (e.g., processor, input / output hardware, etc.). As a non-limiting example, the proof-of-work control card 304 can include, in some cases, one or more hardware component types associated with one or more Antminer control boards. In some cases, the proof-of-work control card 304 can include modified firmware configured to provide the modified work instruction 306 to one or more proof-of-work ASICs 308.
[0075] It should be understood that in some cases, the computing system 300 may control one or more proof-of-work ASICs without using a proof-of-work control card. For example, in some cases, the CPU 302 or the randomness-based computing system 110 may be configured to directly control one or more proof-of-work ASICs 308. For example, this can be achieved when the CPU 302 and the proof-of-work ASIC 308 have compatible communication interfaces and the CPU 302 is appropriately programmed to control the proof-of-work ASIC 308. In some cases, an adapter card may be used to enable communication between the CPU 302 and the proof-of-work ASIC 308. In some cases, the proof-of-work ASIC 308 or the modified work instruction 306 may be configured to cause the proof-of-work ASIC 308 to individually output one or more proof-of-work outputs (e.g., at the blockchain difficulty) associated with the work instruction 104 and one or more generated values 108 for use in randomness-based computing.
[0076] The modified work instruction 306 may include, for example, computer-readable instructions configured to cause one or more proof-of-work ASICs to return one or more generated values 108. For example, in some cases, the work instruction 104 may include a difficulty level (e.g., the minimum number of leading zeros of a computational hash including a cryptographic "random number" and details from one or more blockchain transactions). In these cases, a high difficulty level may in some cases be associated with a small number of generated outputs (e.g., one output every 15 days, where the hash rate is 14.5 terahashes / second and the probability of a successful hash is 1 / 2 64 ) having non-random characters (e.g., a non-random number of leading zeros in each output). In some cases, the modified work instruction 306 may include a difficulty level lower than the difficulty level of the work instruction 104. In some cases, the modified work instruction 306 may be configured to cause the proof-of-work ASIC 308 to output a larger number (e.g., 3300 per second, where the hash rate is 14.5 terahashes / second and the probability of a successful hash is 1 / 2 32 etc.) of generated values 108 (e.g., cryptographic hash values) characterized by a greater degree of randomness compared to the generated values received from the work instruction 104. For example, in some cases, the difficulty level of the modified work instruction 306 may be the minimum difficulty level such that the proof-of-work ASIC 308 outputs a generated value 108 for each operation it performs (e.g., for each cryptographic random number for which it computes a hash). In some cases, the modified work instruction 306 may include one or more firmware modifications to the proof-of-work ASIC 308.
[0077] The proof-of-work ASIC 308 may include, for example, hardware configured to efficiently perform proof-of-work tasks (e.g., cryptographic hashes, such as SHA-256 hashes). As a non-limiting illustrative example, the proof-of-work ASIC 308 may include one or more types of hardware components associated with one or more Antminer proof-of-work ASICs. In some cases, the proof-of-work ASIC 308 may be an ASIC configured for use in the combined computational load of the present disclosure, which includes both proof-of-work and random number generation. For example, in some cases, the proof-of-work ASIC 308 may be configured to separately output one or more proof-of-work outputs associated with work instruction 104 (e.g., at blockchain difficulty) and one or more generated values 108 for use in randomness-based computations.
[0078] The UART 310 may include, for example, one or more devices capable of communicating using the Universal Asynchronous Receiver-Transmitter protocol. However, those skilled in the art should understand that other hardware types and other communication protocols may be used to perform the illustrated communication tasks.
[0079] The floating-point ASIC 312 may include, for example, hardware configured to efficiently perform one or more floating-point operations (e.g., GPUs; ASICs configured for matrix multiplication; etc.).
[0080] Although Figure 3 it is depicted that the generated value 108 is sent directly to the floating-point ASIC 312 for immediate use, it should be understood that in some cases one or more computer-readable storage media (e.g., HBM, RAM, ROM, EPROM, EEPROM, flash memory, disk, etc.) may be used to store the generated value 108 or the random value 112 for later use. For example, in some cases, a single computing system 300 may store one or more generated values 108 or random values 112 for later retrieval by the computing system 300. In other cases, one or more generated values 108 or random values 112 may be transferred from one computing system to another (e.g., via network 301), and in some cases may be stored on a computer-readable storage medium before, during, or after such communication.
[0081] The PCIe 314 may include, for example, any hardware configured to communicate according to the Peripheral Component Interconnect Express standard. However, those skilled in the art should understand that other hardware types and other communication standards may be used to perform the illustrated communication tasks.
[0082] Example Results
[0083] Figure 4It is a chart illustrating the results of embodiments according to the present disclosure. Figure 4 Depicts the total energy usage 402 associated with three computations: a proof - of - work computation 404 executed alone; a Monte Carlo computation 406 executed alone; a combined Monte Carlo and proof - of - work computation 408 according to the present disclosure, wherein the system and method according to the present disclosure generate random numbers for the Monte Carlo computation based on the output of the proof - of - work computation. The combined energy cost of computation 408 is compared with the sum 410 of the energy costs associated with the individual computations 406, 404, and the energy savings 412 are calculated. The experimental results show positive energy savings 412 under various experimental conditions. In some cases, the energy savings 412 are approximately half of the energy usage 402 associated with the proof - of - work computation 404.
[0084] Although Figure 4 The energy savings are depicted relative to the total cost of the proof - of - work computation and the Monte Carlo computation, but other embodiment results show the magnitude of the energy savings relative to the cost of random number generation itself. For example, in some exemplary experiments according to the present disclosure, the energy cost of generating random numbers in a C programming environment is compared with the energy cost associated with reading random numbers from RAM according to the system and method of the present disclosure. In these cases, reading from RAM achieves a 90% energy savings relative to generating random numbers from scratch. Thus, it should be understood that the system and method of the present disclosure improve the functionality of computing systems by enabling similar (e.g., identical) tasks to be performed at a reduced energy cost.
[0085] Example Method
[0086] Figure 5 Depicts a flowchart of an example method for energy - efficient random number generation according to an exemplary implementation of the present disclosure. Although Figure 5 The steps are depicted in a specific order for purposes of illustration and discussion, the methods of the present disclosure are not limited to the specifically illustrated order or arrangement. The various steps of the example method 500 may be omitted, rearranged, combined, and / or choreographed in various ways without departing from the scope of the present disclosure.
[0087] At 502, the example method 500 may include obtaining, by one or more computing devices, one or more work instructions associated with a proof - of - work protocol. In some cases, the one or more work instructions may be work instruction 104 or modified work instruction 306, may include the work instruction or modified work instruction, or may be included in the work instruction or modified work instruction. In some cases, step 502 may include steps for Figure 1 and Figure 3 described one or more steps.
[0088] At 504, example method 500 may include performing, by one or more computing devices, one or more first tasks based at least in part on a work instruction. In some cases, the one or more computing devices may include one or more proof-of-work systems 106 or proof-of-work ASICs 308. In some cases, step 504 may include, for Figure 1 or Figure 3 one or more of the steps described.
[0089] At 506, example method 500 may include determining, by one or more computing devices and based on one or more values generated by the one or more computing devices during one or more first tasks, one or more random values or pseudo-random values. In some cases, the values generated during the one or more first tasks may be generated values 108. In some cases, the random value or pseudo-random value may be random value 112, may include the random value, or may be included in the random value. In some cases, step 506 may include, for Figure 1 or Figure 3 one or more of the steps described.
[0090] At 508, example method 500 may include performing, by one or more computing devices and based on one or more random values or pseudo-random values, one or more second tasks different from the one or more first tasks. In some cases, the one or more computing systems may include one or more randomness-based computing systems 110 or floating-point ASICs 312. In some cases, step 508 may include, for Figure 1 or Figure 3 one or more of the steps described.
[0091] Figure 6 depicts a flowchart of an example method for power grid stabilization according to an example implementation of the present disclosure. Although Figure 6 the steps are depicted in a particular order for purposes of illustration and discussion, the methods of the present disclosure are not limited to the specifically illustrated order or arrangement. The various steps of example method 600 may be omitted, rearranged, combined, and / or choreographed in various ways without departing from the scope of the present disclosure.
[0092] At 602, example method 600 may include obtaining, by one or more computing devices, data indicative of a current power load. In some cases, the current power load may be one or more power loads 204, may include the one or more power loads, may be included in the one or more power loads, or may be associated with the one or more power loads. In some cases, the data indicative of the current power load may be usage data 218, may include the usage data, or may be included in the usage data. In some cases, step 602 may include, for Figure 2One or more of the described steps.
[0093] At 604, example method 600 may include obtaining, by one or more computing devices, data indicative of a current available amount of electrical power of one or more power sources. In some cases, the one or more power sources may be, may include, or may be included in one or more power supplies 202. In some cases, the data indicative of the current available amount of electrical power may be availability data 216. In some cases, step 604 may include, for Figure 2 One or more of the described steps.
[0094] At 606, example method 600 may include determining whether to perform at least one computational task based on a comparison between a current electrical load and the current available amount of electrical power. In some cases, the computational task may be a proof-of-work task or a randomness-based computational task associated with computing system 100, computing system 300, or auxiliary load 212. In some cases, step 606 may include, for Figures 1 to 3 One or more of the described steps.
[0095] Figure 7 Depicts a flowchart of an example method for generating a random value in accordance with an example implementation of the present disclosure. Although Figure 7 Steps are depicted as being performed in a particular order for purposes of illustration and discussion, the methods of the present disclosure are not limited to the specifically illustrated order or arrangement. The various steps of example method 700 may be omitted, rearranged, combined, and / or choreographed in various ways without departing from the scope of the present disclosure.
[0096] At 702, example method 700 may include obtaining, by one or more computing devices, a first minimum value associated with a proof-of-work task. In some cases, the one or more computing devices may include one or more proof-of-work systems 106 or proof-of-work ASICs 308. In some cases, step 702 may include, for Figure 1 or Figure 3 One or more of the described steps.
[0097] At 704, example method 700 may include obtaining, by one or more computing devices, a first maximum value associated with a proof-of-work task. In some cases, step 704 may include, for Figure 1 or Figure 3 One or more of the described steps.
[0098] At 706, example method 700 may include obtaining, by one or more computing devices, a second minimum value that is associated with a probability distribution associated with one or more second tasks that are different from the proof-of-work task. In some cases, the one or more computing devices may include one or more randomness-based computing systems 110 or floating-point ASICs 312. In some cases, step 706 may include for Figure 1 or Figure 3 one or more of the steps described.
[0099] At 708, example method 700 may include obtaining, by one or more computing devices, a second maximum value that is associated with a probability distribution associated with one or more second tasks. In some cases, step 708 may include for Figure 1 or Figure 3 one or more of the steps described.
[0100] At 710, example method 700 may include scaling, by one or more computing devices and based on the first minimum value, the second minimum value, the first maximum value, and the second maximum value, one or more values generated during the proof-of-work task to generate one or more scaled random values or pseudo-random values. In some cases, step 710 may include for Figure 1 or Figure 3 one or more of the steps described.
[0101] This written description uses examples to disclose the invention, including the best mode, and also enables any person skilled in the art to practice the invention, including making and using any device or system and performing any combined method. The patentable scope of the invention is defined by the claims and may include other examples that occur to those skilled in the art. If these other examples include structural elements that are not different from the literal language of the claims, or if they include equivalent structural elements that are not substantially different from the literal language of the claims, then these other examples are intended to be within the scope of the claims.
[0102] Other aspects of the invention are provided by the subject matter of the following clauses:
[0103] A computer-implemented method for reducing the combined computational cost of proof-of-work calculations and calculations requiring a source of randomness, the method comprising: obtaining, by one or more computing devices, one or more work instructions associated with a proof-of-work protocol; performing, by the one or more computing devices, one or more first tasks at least partially based on the work instructions; determining, by the one or more computing devices and based on one or more values generated by the one or more computing devices during the one or more first tasks, one or more random values or pseudo-random values; and performing, by the one or more computing devices and based on the one or more random values or pseudo-random values, one or more second tasks different from the one or more first tasks.
[0104] The method according to one or more of these clauses, the method further comprising: obtaining, by the one or more computing devices, data indicative of a current power load; obtaining, by the one or more computing devices, data indicative of a current available power amount of one or more power sources; and determining, based on a comparison between the current power load and the current available power amount, whether to perform at least one of the one or more first tasks and the one or more second tasks.
[0105] The method according to one or more of these clauses, wherein the proof-of-work protocol is associated with one or more blockchain networks.
[0106] The method according to one or more of these clauses, wherein: the work instruction is a first work instruction characterized by a first difficulty level, and performing the first task comprises: generating, by the one or more computing devices and based on the work instruction, one or more modified work instructions characterized by a second difficulty level lower than the first difficulty level; providing, by the one or more computing devices, the modified work instructions to one or more processors configured to output a number of generated values depending on the difficulty level of the modified work instructions, wherein a lower difficulty level is associated with a higher generated value output number; receiving, by the one or more computing devices and from the one or more processors, one or more generated values; determining, by the one or more computing devices and based on a comparison between the one or more generated values and the first difficulty level, whether at least one of the one or more generated values has satisfied the first work instruction; and providing the at least one generated value to one or more computing systems associated with the one or more blockchain networks.
[0107] The method according to one or more of these clauses, wherein determining one or more random values or pseudo-random values includes: obtaining, by the one or more computing devices, a first minimum value associated with the proof-of-work protocol; obtaining, by the one or more computing devices, a first maximum value associated with the proof-of-work protocol; obtaining, by the one or more computing devices, a second minimum value, the second minimum value being associated with a probability distribution associated with the one or more second tasks; obtaining, by the one or more computing devices, a second maximum value, the second maximum value being associated with the probability distribution associated with the one or more second tasks; and scaling, by the one or more computing devices and based on the first minimum value, the second minimum value, the first maximum value, and the second maximum value, the one or more values generated by the one or more computing devices during the first task to generate one or more scaled random values or pseudo-random values; wherein the probability distribution associated with the scaled random values or pseudo-random values corresponds to the probability distribution associated with the one or more second tasks.
[0108] The method according to one or more of these clauses, wherein determining whether to perform the at least one task includes: identifying stranded power at least in part based on the comparison between the current power load and the current available power; and determining the amount of computation to be performed based on the stranded power.
[0109] The method according to one or more of these clauses, wherein the stranded power includes power generated by at least one renewable energy source.
[0110] The method according to one or more of these clauses, wherein performing the one or more first tasks includes performing one or more cryptographic hashes.
[0111] The method according to one or more of these clauses, wherein the one or more cryptographic hashes include one or more SHA-256 hashes.
[0112] The method according to one or more of these clauses, wherein the one or more values generated during the one or more first tasks include one or more cryptographic hash values.
[0113] The method according to one or more of these clauses, wherein the one or more computing devices include one or more application-specific integrated circuits configured to generate cryptographic hash values.
[0114] The method according to one or more of these clauses, wherein the one or more first tasks are performed using the one or more application-specific integrated circuits configured to generate cryptographic hash values.
[0115] The method according to one or more of these clauses, wherein the one or more second tasks include training one or more machine learning models.
[0116] The method according to one or more of these clauses, wherein the one or more second tasks include performing inference using one or more machine learning models.
[0117] The method according to one or more of these clauses, wherein the one or more second tasks include image generation.
[0118] The method according to one or more of these clauses, wherein the one or more second tasks include text generation.
[0119] The method according to one or more of these clauses, wherein the one or more computing devices include one or more application specific integrated circuits configured to perform one or more floating point operations.
[0120] The method according to one or more of these clauses, wherein the one or more application specific integrated circuits configured to perform one or more floating point operations include one or more graphics processing units.
[0121] The method according to one or more of these clauses, wherein the one or more second tasks are performed using the one or more graphics processing units.
[0122] The method according to one or more of these clauses, wherein the one or more second tasks include Monte Carlo sampling.
[0123] The method according to one or more of these clauses, wherein the one or more second tasks include rejection sampling.
[0124] The method according to one or more of these clauses, wherein the one or more second tasks include Metropolis-Hastings sampling.
[0125] The method according to one or more of these clauses, wherein the one or more second tasks include Gibbs sampling.
[0126] The method according to one or more of these clauses, the method further comprising: storing, by the one or more computing devices and using one or more non-transitory computer-readable media, at least one of the following: the one or more values generated during the one or more first tasks; and the one or more random or pseudo-random values; and retrieving, by the one or more computing devices and from the one or more non-transitory computer-readable media, the stored values; wherein the second task is performed using the retrieved values.
[0127] A method according to one or more of these clauses, the method further comprising: communicating one or more values from an application specific integrated circuit associated with the first task and to an application specific integrated circuit associated with the second task; and loading the communicated values into one or more random access memories associated with the application specific integrated circuit associated with the second task; wherein performing the second task includes using the one or more random access memories to access the communicated values.
[0128] A computing device, the computing device including one or more processors and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the computing system to perform one or more operations, the operations including: obtaining one or more work instructions associated with a proof-of-work protocol; performing one or more first tasks at least in part based on the work instructions; determining one or more random or pseudo-random values based on one or more values generated by the one or more computing devices during the one or more first tasks; performing one or more second tasks different from the one or more first tasks based on the one or more random or pseudo-random values.
[0129] A computing device, the computing device including one or more processors and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the computing system to perform one or more operations, the operations including: performing the method according to one or more of these clauses.
[0130] One or more non-transitory computer-readable media storing instructions that, when executed by one or more computing systems, cause the one or more computing systems to perform one or more operations, the operations including: obtaining one or more work instructions associated with a proof-of-work protocol; performing one or more first tasks at least in part based on the work instructions; determining one or more random or pseudo-random values based on one or more values generated by the one or more computing devices during the one or more first tasks; performing one or more second tasks different from the one or more first tasks based on the one or more random or pseudo-random values.
[0131] One or more non-transitory computer-readable media storing instructions that, when executed by one or more computing systems, cause the one or more computing systems to perform one or more operations, the operations including: performing the method according to one or more of these clauses.
Claims
1. A computer-implemented method for reducing the combined computational energy cost of proof-of-work computations and computations requiring a source of randomness, the method comprising: Obtaining, by one or more computing devices, one or more work instructions associated with a proof-of-work protocol; performing, by the one or more computing devices, one or more first tasks based at least in part on the work order; determining, by the one or more computing devices and based on one or more values generated by the one or more computing devices during the one or more first tasks, one or more random values or pseudo-random values; One or more second tasks different from the one or more first tasks are performed by the one or more computing devices and based on the one or more random values or pseudo-random values.
2. The method according to claim 1, further comprising: obtaining, by the one or more computing devices, data indicative of a current electrical load; obtaining, by the one or more computing devices, data indicating an amount of power currently available from one or more power sources; as well as Whether to perform at least one of the one or more first tasks and the one or more second tasks is determined based on a comparison between the current power load and the current available power amount.
3. The method of claim 1 or 2, wherein the proof-of-work protocol is associated with one or more blockchain networks.
4. The method according to claim 3, wherein: The work instruction is a first work instruction characterized by a first difficulty level, and performing the first task includes: generating, by the one or more computing devices and based on the work instructions, one or more modified work instructions characterized by a second difficulty level lower than the first difficulty level; providing, by the one or more computing devices, the modified work order to one or more processors, the one or more processors configured to output a generated value quantity dependent upon the difficulty level of the modified work order, wherein a lower difficulty level is associated with a higher generated value output quantity; receiving, by the one or more computing devices and from the one or more processors, one or more generated values; determining, by the one or more computing devices and based on a comparison between the one or more generated values and the first difficulty level, whether at least one of the one or more generated values has satisfied the first work order; and Providing the at least one generated value to one or more computing systems associated with the one or more blockchain networks.
5. The method of claim 1 or 2, wherein determining one or more random values or pseudo-random values comprises: obtaining, by the one or more computing devices, a first minimum value associated with the proof-of-work protocol; obtaining, by the one or more computing devices, a first maximum value associated with the proof-of-work protocol; obtaining, by the one or more computing devices, a second minimum value associated with a probability distribution associated with the one or more second tasks; obtaining, by the one or more computing devices, a second maximum value associated with the probability distribution associated with the one or more second tasks; as well as scaling, by the one or more computing devices and based on the first minimum value, the second minimum value, the first maximum value, and the second maximum value, the one or more values generated by the one or more computing devices during the first task to generate one or more scaled random values or pseudo-random values; Wherein the probability distribution associated with the scaled random value or pseudo-random value corresponds to the probability distribution associated with the one or more second tasks.
6. The method of claim 2, wherein determining whether to perform the at least one task comprises: identifying an amount of stranded power based at least in part on said comparison between said current power load and said current amount of available power; as well as An amount of calculation to be performed is determined based on the amount of stranded power.
7. The method of claim 6, wherein the stranded power comprises power generated by at least one renewable energy source.
8. The method of claim 1 or 2, wherein performing the one or more first tasks comprises performing one or more cryptographic hashes.
9. The method of claim 8, wherein the one or more cryptographic hashes comprise one or more SHA-256 hashes.
10. The method of claim 1 or 2, wherein the one or more values generated during the one or more first tasks include one or more cryptographic hash values.
11. The method of claim 1 or 2, wherein the one or more computing devices include one or more application specific integrated circuits configured to generate a cryptographic hash value or perform one or more floating point operations.
12. The method of claim 11, wherein the one or more first tasks are performed using the one or more application specific integrated circuits configured to generate a cryptographic hash value.
13. The method according to claim 1 or 2, wherein the one or more second tasks include at least one of the following: Train one or more machine learning models; Use one or more machine learning models to perform inference; Image generation; Text generation; Monte Carlo sampling; Refusal to take samples; Metropolis-Hastings sampling; Gibbs sampling.
14. A computing system comprising one or more processors and one or more non-transitory computer-readable media storing instructions, the instructions executable by the one or more processors to cause the computing system to perform one or more operations, the operations comprising: obtaining one or more work orders associated with a proof-of-work protocol; performing one or more first tasks based at least in part on the work order; determining one or more random values or pseudo-random values based on one or more values generated by the one or more computing devices during the one or more first tasks; One or more second tasks different from the one or more first tasks are performed based on the one or more random values or pseudo-random values.
15. One or more non-transitory computer-readable media storing instructions executable by one or more computing systems to perform one or more operations comprising: obtaining one or more work orders associated with a proof-of-work protocol; performing one or more first tasks based at least in part on the work order; determining one or more random values or pseudo-random values based on one or more values generated by the one or more computing systems during the one or more first tasks; One or more second tasks different from the one or more first tasks are performed based on the one or more random values or pseudo-random values.