Struct CpuRuntime
pub struct CpuRuntime {
node_id: u64,
kernels: RwLock<RawRwLock, HashMap<KernelId, Arc<CpuKernel>>>,
total_launched: AtomicU64,
messages_sent: AtomicU64,
messages_received: AtomicU64,
shutdown: RwLock<RawRwLock, bool>,
k2k_broker: Option<Arc<K2KBroker>>,
}Expand description
CPU-based implementation of RingKernelRuntime.
This runtime executes kernels on the CPU, simulating GPU behavior. It’s primarily used for testing and as a fallback when no GPU is available.
Fields§
§node_id: u64§kernels: RwLock<RawRwLock, HashMap<KernelId, Arc<CpuKernel>>>§total_launched: AtomicU64§messages_sent: AtomicU64§messages_received: AtomicU64§shutdown: RwLock<RawRwLock, bool>§k2k_broker: Option<Arc<K2KBroker>>Implementations§
§impl CpuRuntime
impl CpuRuntime
pub async fn new() -> Result<CpuRuntime, RingKernelError>
pub async fn new() -> Result<CpuRuntime, RingKernelError>
Create a new CPU runtime.
pub async fn with_node_id(node_id: u64) -> Result<CpuRuntime, RingKernelError>
pub async fn with_node_id(node_id: u64) -> Result<CpuRuntime, RingKernelError>
Create a CPU runtime with specific node ID.
pub async fn with_config(
node_id: u64,
enable_k2k: bool,
) -> Result<CpuRuntime, RingKernelError>
pub async fn with_config( node_id: u64, enable_k2k: bool, ) -> Result<CpuRuntime, RingKernelError>
Create a CPU runtime with configuration options.
pub async fn with_k2k_config(
node_id: u64,
k2k_config: K2KConfig,
) -> Result<CpuRuntime, RingKernelError>
pub async fn with_k2k_config( node_id: u64, k2k_config: K2KConfig, ) -> Result<CpuRuntime, RingKernelError>
Create a CPU runtime with custom K2K configuration.
pub fn is_shutdown(&self) -> bool
pub fn is_shutdown(&self) -> bool
Check if runtime is shut down.
pub fn is_k2k_enabled(&self) -> bool
pub fn is_k2k_enabled(&self) -> bool
Check if K2K messaging is enabled.
pub fn k2k_broker(&self) -> Option<&Arc<K2KBroker>>
pub fn k2k_broker(&self) -> Option<&Arc<K2KBroker>>
Get the K2K broker (if enabled).
Trait Implementations§
§impl RingKernelRuntime for CpuRuntime
impl RingKernelRuntime for CpuRuntime
§fn is_backend_available(&self, backend: Backend) -> bool
fn is_backend_available(&self, backend: Backend) -> bool
Check if a specific backend is available.
§fn launch<'life0, 'life1, 'async_trait>(
&'life0 self,
kernel_id: &'life1 str,
options: LaunchOptions,
) -> Pin<Box<dyn Future<Output = Result<KernelHandle, RingKernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
CpuRuntime: 'async_trait,
fn launch<'life0, 'life1, 'async_trait>(
&'life0 self,
kernel_id: &'life1 str,
options: LaunchOptions,
) -> Pin<Box<dyn Future<Output = Result<KernelHandle, RingKernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
CpuRuntime: 'async_trait,
Launch a kernel.
§fn get_kernel(&self, kernel_id: &KernelId) -> Option<KernelHandle>
fn get_kernel(&self, kernel_id: &KernelId) -> Option<KernelHandle>
Get a handle to an existing kernel.
§fn list_kernels(&self) -> Vec<KernelId>
fn list_kernels(&self) -> Vec<KernelId>
List all kernel IDs.
§fn metrics(&self) -> RuntimeMetrics
fn metrics(&self) -> RuntimeMetrics
Get runtime metrics.
§fn shutdown<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), RingKernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
CpuRuntime: 'async_trait,
fn shutdown<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), RingKernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
CpuRuntime: 'async_trait,
Shutdown the runtime and terminate all kernels.
Auto Trait Implementations§
impl !Freeze for CpuRuntime
impl !RefUnwindSafe for CpuRuntime
impl Send for CpuRuntime
impl Sync for CpuRuntime
impl Unpin for CpuRuntime
impl !UnwindSafe for CpuRuntime
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.