pub fn parallel_for<const N: usize>(
    execp: ExecutionPolicy<N>,
    func: impl FnMut(KernelArgs<N>)
) -> Result<(), StatementError>
Expand description

Parallel For statement.

Current version: no feature

Example

use poc_kokkos_rs::{
    functor::KernelArgs,
    routines::{
        parallel_for,
        parameters::{ExecutionPolicy, ExecutionSpace, RangePolicy, Schedule},
    },
};

let length: usize = 8;

let kern = |arg: KernelArgs<1>| match arg {
        KernelArgs::Index1D(i) => {
            // body of the kernel
            println!("Hello from iteration {i}")
        },
        KernelArgs::IndexND(_) => unimplemented!(),
        KernelArgs::Handle => unimplemented!(),
    };

let execp =  ExecutionPolicy {
        space: ExecutionSpace::DeviceCPU,
        range: RangePolicy::RangePolicy(0..length),
        schedule: Schedule::Static,
    };

parallel_for(execp, kern).unwrap();