SUPERSCALAR CONTROL FOR A PROBABILITY COMPUTER
A method of executing operations in parallel in a probability processing system includes providing a probability processor for executing said operations; and providing a scheduler for identifying, from said operations, those operations that can be executed in parallel. Providing the scheduler includes compiling code written in a probability programming language, that includes both modeling instructions and instructions for scheduling.
1 . A method of executing operations in parallel in a probability processing system, said method comprising
providing a probability processor for executing said operations; and
providing a scheduler for identifying, from said operations, those operations that can be executed in parallel;
wherein providing said scheduler comprises compiling code written in a probability programming language, said code including modeling instructions and instructions for scheduling.
2 . The method of claim 1 , wherein providing said scheduler comprises providing a scheduler that imposes an order in said operations.
3 . The method of claim 1 , wherein providing said scheduler comprises providing a scheduler that chooses between one of a plurality of scheduling methods.
4 . The method of claim 1 , wherein providing said scheduler comprises providing a scheduler that randomly chooses a scheduling method from a set of scheduling methods.
5 . The method of claim 1 , wherein providing said scheduler comprises providing a scheduler that randomly selects an edge in a factor graph and randomly selects a direction associated with said edge.
6 . The method of claim 1 , wherein providing said scheduler comprises providing a scheduler that randomly selects a node in a factor graph and updates messages on an edge incident on said node.
7 . (canceled)
8 . A nontransitory computer-readable medium having encoded thereon software comprising instructions for
providing a probability processor for executing said operations; and
providing a scheduler for identifying, from said operations, those operations that can be executed in parallel;
wherein providing said scheduler comprises compiling code written in a probability programming language, said code including modeling instructions and instructions for scheduling.
9 . A data processing system configured to execute software for
providing a probability processor for executing said operations; and
providing a scheduler for identifying, from said operations, those operations that can be executed in parallel;
wherein providing said scheduler comprises compiling code written in a probability programming language, said code including modeling instructions and instructions for scheduling.