Changeset 2645 for XIOS3/dev


Ignore:
Timestamp:
07/24/24 16:24:21 (7 months ago)
Author:
jderouillat
Message:

Introduce Kokkos::parallel_for in local connector and, in model to client filter

Location:
XIOS3/dev/XIOS_KOKKOS/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • XIOS3/dev/XIOS_KOKKOS/src/distribution/local_connector.hpp

    r2644 r2645  
    108108          Kokkos::View<T*,Kokkos::DefaultExecutionSpace::memory_space, Kokkos::MemoryTraits<Kokkos::Unmanaged> > k_input ( (T*)input, getSrcSize() ); 
    109109          Kokkos::View<T*,Kokkos::DefaultExecutionSpace::memory_space, Kokkos::MemoryTraits<Kokkos::Unmanaged> > k_output( output, getDstSize() ); 
    110           for(int i=0;i<mask_.size();i++) k_output(i)=missingValue ; 
    111           for(int i=0;i<size;i++) 
     110 
     111          Kokkos::parallel_for( "local_connector_missing", mask_.size(), KOKKOS_LAMBDA( const size_t i ) 
     112          { 
     113            k_output(i)=missingValue ; 
     114          }); 
     115          Kokkos::fence(); 
     116          Kokkos::parallel_for( "local_connector_transfer", size, KOKKOS_LAMBDA( const size_t i ) 
    112117          { 
    113118            k_output(connector_out(i))=k_input(connector_in(i)) ; 
    114           } 
     119          }); 
     120          Kokkos::fence(); 
    115121 
    116122          // - // 
  • XIOS3/dev/XIOS_KOKKOS/src/filter/model_to_client_source_filter.cpp

    r2636 r2645  
    4949        const double nanValue = std::numeric_limits<double>::quiet_NaN(); 
    5050        const size_t nbData = packet->data.numElements(); 
    51         for (size_t idx = 0; idx < nbData; ++idx) 
    52           if (defaultValue_ == packet->data(idx))   packet->data(idx) = nanValue; 
     51        auto packetData = packet->data; 
     52        Kokkos::parallel_for( "filter_missing_value", nbData, KOKKOS_LAMBDA( const size_t idx ) 
     53        { 
     54          if (defaultValue_ == packetData(idx))   packetData(idx) = nanValue; 
     55        }); 
     56        Kokkos::fence(); 
    5357    } 
    5458     
Note: See TracChangeset for help on using the changeset viewer.