OutputArrayContainer

class cubie.batchsolving.arrays.BatchOutputArrays.OutputArrayContainer(state: ManagedArray = NOTHING, observables: ManagedArray = NOTHING, state_summaries: ManagedArray = NOTHING, observable_summaries: ManagedArray = NOTHING, status_codes: ManagedArray = NOTHING, iteration_counters: ManagedArray = NOTHING)[source]

Bases: ArrayContainer

Container for batch output arrays.

classmethod device_factory() OutputArrayContainer[source]

Create a new device memory container.

Returns:

A new container configured for device memory.

Return type:

OutputArrayContainer

classmethod host_factory(memory_type: str = 'pinned') OutputArrayContainer[source]

Create a new host memory container.

Parameters:

memory_type – Memory type for host arrays: “pinned” or “host”. Default is “pinned” for non-chunked operation.

Returns:

A new container configured for the specified memory type.

Return type:

OutputArrayContainer

Notes

Uses pinned (page-locked) memory to enable asynchronous device-to-host transfers with CUDA streams. Using "host" memory type instead would result in pageable memory that blocks async transfers due to required intermediate buffering.

iteration_counters: ManagedArray
observable_summaries: ManagedArray
observables: ManagedArray
state: ManagedArray
state_summaries: ManagedArray
status_codes: ManagedArray