petsc4py.PETSc.DeviceContext#
- class petsc4py.PETSc.DeviceContext#
Bases:
Object
DeviceContext object.
Represents an abstract handle to a device context.
See also
Enumerations
The type of join to perform.
The type of stream.
Methods Summary
create
()Create an empty DeviceContext.
destroy
()Destroy a device context.
Duplicate a the device context.
fork
(n[, stream_type])Create multiple device contexts which are all logically dependent on this one.
Return the current device context.
Get the
Device
which this instance is attached to.Return the
StreamType
.idle
()Return whether the underlying stream for the device context is idle.
join
(join_mode, py_sub_ctxs)Join a set of device contexts on this one.
setCurrent
(dctx)Set the current device context.
setDevice
(device)Set the
Device
which thisDeviceContext
is attached to.setFromOptions
([comm])Configure the
DeviceContext
from the options database.setStreamType
(stream_type)Set the
StreamType
.setUp
()Set up the internal data structures for using the device context.
Synchronize a device context.
waitFor
(other)Make this instance wait for
other
.Attributes Summary
The current global device context.
The device associated to the device context.
The stream type.
Methods Documentation
- create()#
Create an empty DeviceContext.
Not collective.
See also
Source code at petsc4py/PETSc/Device.pyx:240
- Return type:
- destroy()#
Destroy a device context.
Not collective.
See also
Source code at petsc4py/PETSc/Device.pyx:255
- Return type:
- duplicate()#
Duplicate a the device context.
Not collective.
See also
Source code at petsc4py/PETSc/Device.pyx:348
- Return type:
- fork(n, stream_type=None)#
Create multiple device contexts which are all logically dependent on this one.
Not collective.
- Parameters:
n (int) – The number of device contexts to create.
stream_type (StreamType | str | None) – The type of stream of the forked device context.
- Return type:
Examples
The device contexts created must be destroyed using
join
.>>> dctx = PETSc.DeviceContext().getCurrent() >>> dctxs = dctx.fork(4) >>> ... # perform computations >>> # we can mix various join modes >>> dctx.join(PETSc.DeviceContext.JoinMode.SYNC, dctxs[0:2]) >>> dctx.join(PETSc.DeviceContext.JoinMode.SYNC, dctxs[2:]) >>> ... # some more computations and joins >>> # dctxs must be all destroyed with joinMode.DESTROY >>> dctx.join(PETSc.DeviceContext.JoinMode.DESTROY, dctxs)
See also
- static getCurrent()#
Return the current device context.
Not collective.
See also
Source code at petsc4py/PETSc/Device.pyx:519
- Return type:
- getDevice()#
Get the
Device
which this instance is attached to.Not collective.
See also
Source code at petsc4py/PETSc/Device.pyx:302
- Return type:
- getStreamType()#
Return the
StreamType
.Not collective.
Source code at petsc4py/PETSc/Device.pyx:268
- Return type:
- idle()#
Return whether the underlying stream for the device context is idle.
Not collective.
See also
Source code at petsc4py/PETSc/Device.pyx:363
- Return type:
- join(join_mode, py_sub_ctxs)#
Join a set of device contexts on this one.
Not collective.
- Parameters:
join_mode (DeviceJoinMode | str) – The type of join to perform.
py_sub_ctxs (list[DeviceContext]) – The list of device contexts to join.
- Return type:
See also
- static setCurrent(dctx)#
Set the current device context.
Not collective.
- Parameters:
dctx (DeviceContext | None) – The
DeviceContext
to set as current (orNone
to use the default context).- Return type:
See also
- setDevice(device)#
Set the
Device
which thisDeviceContext
is attached to.Collective.
See also
- setFromOptions(comm=None)#
Configure the
DeviceContext
from the options database.Collective.
- Parameters:
comm (Comm | None) – MPI communicator, defaults to
Sys.getDefaultComm
.- Return type:
- setStreamType(stream_type)#
Set the
StreamType
.Not collective.
- Parameters:
stream_type (StreamType | str) – The type of stream to set
- Return type:
- setUp()#
Set up the internal data structures for using the device context.
Not collective.
See also
Source code at petsc4py/PETSc/Device.pyx:336
- Return type:
- synchronize()#
Synchronize a device context.
Not collective.
Notes
The underlying stream is considered idle after this routine returns, i.e.
idle
will returnTrue
.See also
Source code at petsc4py/PETSc/Device.pyx:483
- Return type:
- waitFor(other)#
Make this instance wait for
other
.Not collective.
- Parameters:
other (DeviceContext | None) – The other
DeviceContext
to wait for- Return type:
See also
Attributes Documentation
- current#
The current global device context.
- device#
The device associated to the device context.
- stream_type#
The stream type.