Virtualization is a property that can be applied to a designated portion of an algorithm to allow multiple "copies" of the designated portion to be created and executed simultaneously. Specifically, the user must group a set of blocks, virtualize the group, and then link a discrete event message pathway into the virtualized group block. Whenever a discrete event message enters the virtualized block via this pathway, a fresh copy is created, with each copy operating independently of others. Each copy, while identical in the composition of blocks, can operate independently with unique inputs and outputs.
The following rules and restrictions govern the behavior of virtualized blocks:
A virtualized block must contain a discrete event message input since a virtualized block is generated exclusively by a discrete event (i.e., a pulse of information that is generated at a single moment in time as opposed to continuous streaming data).
A virtualized block cannot have any continuous output ports, only discrete output ports.
A discrete event message generated within a virtualized block may exit the block through a discrete output port. In addition, the outgoing message can also "transport" information from inside the virtualized block to other blocks outside of the virtualized block. However, a discrete event message can only carry information regarding an order execution, submission, modification, and deletion. Discrete event messages generated by the Time And Sales block contained within a virtaulized block may also transport information regarding the last trade (e.g., Trade Price).
Example Transporting information contained within a virtualized block