<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re:Error Passing Objects to PageRank in Intel® oneAPI DPC++/C++ Compiler</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Error-Passing-Objects-to-PageRank/m-p/1453043#M2767</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thanks for accepting our solution. If you need any additional information, please post a new question as this thread will no longer be monitored by Intel.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;Pendyala Sesha Srinivas&lt;/P&gt;&lt;BR /&gt;</description>
    <pubDate>Fri, 03 Feb 2023 12:11:10 GMT</pubDate>
    <dc:creator>SeshaP_Intel</dc:creator>
    <dc:date>2023-02-03T12:11:10Z</dc:date>
    <item>
      <title>Error Passing Objects to PageRank</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Error-Passing-Objects-to-PageRank/m-p/1451101#M2754</link>
      <description>&lt;P&gt;Hi!&lt;/P&gt;
&lt;P&gt;I'm trying to write down a program with buffers to perform PageRank algorithm.&lt;/P&gt;
&lt;P&gt;The code that works with stl reads a csv with edges of the graph. Returns a std::vector&amp;lt;std::vector&amp;lt;int&amp;gt;&amp;gt;. Then, i flat that vector to a std::vector&amp;lt;int&amp;gt;.&lt;/P&gt;
&lt;P&gt;The problem is in the lambda function that starts down the code for the ranks calculation. But i can't figure out if it is the vectors or some hyperparameters...&lt;/P&gt;
&lt;P&gt;Can someone help me?&lt;/P&gt;
&lt;P&gt;Here's the Code:&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;#include &amp;lt;sycl/sycl.hpp&amp;gt;
#include &amp;lt;sycl/ext/intel/fpga_extensions.hpp&amp;gt;
// #include &amp;lt;oneapi/mkl/blas.hpp&amp;gt;
#include &amp;lt;cmath&amp;gt;
#include &amp;lt;chrono&amp;gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;cmath&amp;gt;
#include "guideline.h"
#include "print_vector.h"
#include "print_time.h"
#include "read_graph.h"
#include "flatVector.h"


using namespace sycl;

int main(int argc, char* argv[]){
    // Check CL Parameters
    if(argc &amp;lt; 5){
        // FAILURE
        guideline();
        return 0;
    }
    else{
        // Parse CL Objects
        int device_selected = atoi(argv[1]);
        std::string csv_path = argv[2];
        float threshold = atof(argv[3]);
        float damping = atof(argv[3]);
        device d;
        // Select Accelerator
        if(device_selected == 1){
            d = device(cpu_selector()); //# cpu_selector returns a cpu device
        }
        if(device_selected == 2){
            try {
                d = device(gpu_selector());      //# gpu_selector returns a gpu device
            } catch (exception const&amp;amp; e) {
                std::cout &amp;lt;&amp;lt; "Cannot select a GPU\n" &amp;lt;&amp;lt; e.what() &amp;lt;&amp;lt; "\n";
                std::cout &amp;lt;&amp;lt; "Using a CPU device\n";
                d = device(cpu_selector());      //# cpu_selector returns a cpu device
            }
        }
        if(device_selected == 3){
            ext::intel::fpga_selector d;
        }
        // Queue
        queue q(d);
        std::cout &amp;lt;&amp;lt; "Device : " &amp;lt;&amp;lt; q.get_device().get_info&amp;lt;info::device::name&amp;gt;() &amp;lt;&amp;lt; "\n"; // print del device
        // Time for setup
        auto start_setup = std::chrono::steady_clock::now();
        // Graph Expressed by edges
        std::vector&amp;lt;std::vector&amp;lt;int&amp;gt;&amp;gt; graph = Read_graph(csv_path);/*edges of graph (Sparse matrix rep.)*/
        std::vector&amp;lt;int&amp;gt; flatGraph = flatten&amp;lt;int&amp;gt;(graph);
        // Calculation of # nodes
        int numNodes  = countNodes(graph);
        // Degree of Each node
        std::vector&amp;lt;int&amp;gt; degreesNodes = getDegrees(graph, numNodes+1);
        auto end_setup = std::chrono::steady_clock::now();
        // prints for debug
        print_time(start_setup, end_setup);
        // prints for debug
        //printVector&amp;lt;int&amp;gt;(degreesNodes);
        //Init - Final Vectors for ratings [R(t); R(t+1)]
        std::vector&amp;lt;float&amp;gt; ranks_t(numNodes, (float)(1.0/ (float)(numNodes)));
        std::vector&amp;lt;float&amp;gt; ranks_t_plus_one(numNodes);

        // Pagerank Execution Time
        auto start = std::chrono::steady_clock::now();
        buffer&amp;lt;int&amp;gt; bufferEdges(flatGraph.data(),flatGraph.size());
        buffer&amp;lt;float&amp;gt; bufferRanks(ranks_t.data(),ranks_t.size());
        buffer&amp;lt;int&amp;gt; bufferDegrees(degreesNodes.data(),degreesNodes.size());
        buffer&amp;lt;float&amp;gt; bufferRanksNext(ranks_t_plus_one.data(),ranks_t_plus_one.size());
        float distance = threshold + 1;
        while (distance &amp;gt; threshold) {
            q.submit([&amp;amp;](handler &amp;amp;h){
                auto accessorsEdges = bufferEdges.get_access&amp;lt;access::mode::read&amp;gt;(h);
                auto accessorsRanks = bufferRanks.get_access&amp;lt;access::mode::read&amp;gt;(h);
                auto accessorsDegrees = bufferDegrees.get_access&amp;lt;access::mode::read&amp;gt;(h);
                auto accessorsRanksNext = bufferRanksNext.get_access&amp;lt;access::mode::read_write&amp;gt;(h);
                h.parallel_for(range&amp;lt;1&amp;gt;(numNodes),[=] (id&amp;lt;1&amp;gt; i){// Errors not  device copiable
                    accessorsRanksNext[i] = (1.0 - damping) / numNodes;
                    int index_node_i;
                    int index_node_j;
                    for (int j = 0; j&amp;lt;flatGraph.size() / 2;j++) {
                        index_node_i = 2 * j;
                        index_node_j = index_node_i + 1;
                        if (accessorsEdges[index_node_j] == i) {
                            accessorsRanksNext[i] += damping * accessorsRanks[accessorsEdges[index_node_i]] / accessorsDegrees[accessorsEdges[index_node_i]];
                        }
                    }
                });
                
            });
            distance = 0;
            for (int i = 0; i &amp;lt; numNodes; i++) {
                distance += (ranks_t[i] - ranks_t_plus_one[i]) * (ranks_t[i] - ranks_t_plus_one[i]);
            }
            distance = sqrt(distance);
            ranks_t_plus_one = ranks_t;
        }
        auto end = std::chrono::steady_clock::now();
        // Print
        printVector(ranks_t_plus_one);
        std::cout&amp;lt;&amp;lt;std::endl&amp;lt;&amp;lt;std::endl&amp;lt;&amp;lt;std::endl;
        std::cout&amp;lt;&amp;lt;"Final Norm:\t"&amp;lt;&amp;lt;distance&amp;lt;&amp;lt;std::endl;
        // Print time PageRank
        print_time(start, end);

        return 0;
    }
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;Errors:&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;BUFFER_PageRank.cpp:34:24: warning: 'cpu_selector' is deprecated: Use the callable sycl::cpu_selector_v instead. [-Wdeprecated-declarations]
            d = device(cpu_selector()); //# cpu_selector returns a cpu device
                       ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/device_selector.hpp:74:21: note: 'cpu_selector' has been explicitly marked deprecated here
class __SYCL_EXPORT __SYCL2020_DEPRECATED(
                    ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/detail/defines_elementary.hpp:52:40: note: expanded from macro '__SYCL2020_DEPRECATED'
#define __SYCL2020_DEPRECATED(message) __SYCL_DEPRECATED(message)
                                       ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/detail/defines_elementary.hpp:43:38: note: expanded from macro '__SYCL_DEPRECATED'
#define __SYCL_DEPRECATED(message) [[deprecated(message)]]
                                     ^
BUFFER_PageRank.cpp:38:28: warning: 'gpu_selector' is deprecated: Use the callable sycl::gpu_selector_v instead. [-Wdeprecated-declarations]
                d = device(gpu_selector());      //# gpu_selector returns a gpu device
                           ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/device_selector.hpp:62:21: note: 'gpu_selector' has been explicitly marked deprecated here
class __SYCL_EXPORT __SYCL2020_DEPRECATED(
                    ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/detail/defines_elementary.hpp:52:40: note: expanded from macro '__SYCL2020_DEPRECATED'
#define __SYCL2020_DEPRECATED(message) __SYCL_DEPRECATED(message)
                                       ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/detail/defines_elementary.hpp:43:38: note: expanded from macro '__SYCL_DEPRECATED'
#define __SYCL_DEPRECATED(message) [[deprecated(message)]]
                                     ^
BUFFER_PageRank.cpp:42:28: warning: 'cpu_selector' is deprecated: Use the callable sycl::cpu_selector_v instead. [-Wdeprecated-declarations]
                d = device(cpu_selector());      //# cpu_selector returns a cpu device
                           ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/device_selector.hpp:74:21: note: 'cpu_selector' has been explicitly marked deprecated here
class __SYCL_EXPORT __SYCL2020_DEPRECATED(
                    ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/detail/defines_elementary.hpp:52:40: note: expanded from macro '__SYCL2020_DEPRECATED'
#define __SYCL2020_DEPRECATED(message) __SYCL_DEPRECATED(message)
                                       ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/detail/defines_elementary.hpp:43:38: note: expanded from macro '__SYCL_DEPRECATED'
#define __SYCL_DEPRECATED(message) [[deprecated(message)]]
                                     ^
In file included from BUFFER_PageRank.cpp:1:
In file included from /glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/sycl.hpp:11:
In file included from /glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/accessor.hpp:25:
In file included from /glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/image.hpp:18:
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/types.hpp:2440:3: error: static assertion failed due to requirement 'is_device_copyable&amp;lt;std::vector&amp;lt;int, std::allocator&amp;lt;int&amp;gt;&amp;gt;, void&amp;gt;::value || detail::IsDeprecatedDeviceCopyable&amp;lt;std::vector&amp;lt;int, std::allocator&amp;lt;int&amp;gt;&amp;gt;, void&amp;gt;::value': The specified type is not device copyable
  static_assert(is_device_copyable&amp;lt;FieldT&amp;gt;::value ||
  ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/types.hpp:2438:7: note: in instantiation of template class 'sycl::detail::CheckFieldsAreDeviceCopyable&amp;lt;(lambda at BUFFER_PageRank.cpp:84:51), 4&amp;gt;' requested here
    : CheckFieldsAreDeviceCopyable&amp;lt;T, NumFieldsToCheck - 1&amp;gt; {
      ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/types.hpp:2438:7: note: in instantiation of template class 'sycl::detail::CheckFieldsAreDeviceCopyable&amp;lt;(lambda at BUFFER_PageRank.cpp:84:51), 5&amp;gt;' requested here
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/types.hpp:2438:7: note: in instantiation of template class 'sycl::detail::CheckFieldsAreDeviceCopyable&amp;lt;(lambda at BUFFER_PageRank.cpp:84:51), 6&amp;gt;' requested here
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/types.hpp:2473:7: note: in instantiation of template class 'sycl::detail::CheckFieldsAreDeviceCopyable&amp;lt;(lambda at BUFFER_PageRank.cpp:84:51), 7&amp;gt;' requested here
    : CheckFieldsAreDeviceCopyable&amp;lt;FuncT, __builtin_num_fields(FuncT)&amp;gt;,
      ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/types.hpp:2481:7: note: in instantiation of template class 'sycl::detail::CheckDeviceCopyable&amp;lt;(lambda at BUFFER_PageRank.cpp:84:51)&amp;gt;' requested here
    : CheckDeviceCopyable&amp;lt;KernelType&amp;gt; {};
      ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/handler.hpp:1251:5: note: in instantiation of template class 'sycl::detail::CheckDeviceCopyable&amp;lt;sycl::detail::RoundedRangeKernel&amp;lt;sycl::item&amp;lt;1, true&amp;gt;, 1, (lambda at BUFFER_PageRank.cpp:84:51)&amp;gt;&amp;gt;' requested here
    detail::CheckDeviceCopyable&amp;lt;KernelType&amp;gt;();
    ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/handler.hpp:1042:7: note: in instantiation of function template specialization 'sycl::handler::kernel_parallel_for_wrapper&amp;lt;sycl::detail::RoundedRangeKernel&amp;lt;sycl::item&amp;lt;1, true&amp;gt;, 1, (lambda at BUFFER_PageRank.cpp:84:51)&amp;gt;, sycl::item&amp;lt;1, true&amp;gt;, sycl::detail::RoundedRangeKernel&amp;lt;sycl::item&amp;lt;1, true&amp;gt;, 1, (lambda at BUFFER_PageRank.cpp:84:51)&amp;gt;&amp;gt;' requested here
      kernel_parallel_for_wrapper&amp;lt;KName, TransformedArgType&amp;gt;(Wrapper);
      ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/handler.hpp:1471:5: note: in instantiation of function template specialization 'sycl::handler::parallel_for_lambda_impl&amp;lt;sycl::detail::auto_name, (lambda at BUFFER_PageRank.cpp:84:51), 1&amp;gt;' requested here
    parallel_for_lambda_impl&amp;lt;KernelName&amp;gt;(NumWorkItems, std::move(KernelFunc));
    ^
BUFFER_PageRank.cpp:84:19: note: in instantiation of function template specialization 'sycl::handler::parallel_for&amp;lt;sycl::detail::auto_name, (lambda at BUFFER_PageRank.cpp:84:51)&amp;gt;' requested here
                h.parallel_for(range&amp;lt;1&amp;gt;(numNodes),[=] (id&amp;lt;1&amp;gt; i){// i vettori di interi non sono device copiable
                  ^
/glob/development-tools/versions/oneapi/2023.0/oneapi/compiler/2023.0.0/linux/bin-llvm/../include/sycl/types.hpp:2440:51: note: expression evaluates to 'false || false'
  static_assert(is_device_copyable&amp;lt;FieldT&amp;gt;::value ||
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
3 warnings and 1 error generated.&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;Here's also the rest of the codes for debugging if it helps:&lt;/P&gt;
&lt;P&gt;FlatVector.h&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;

template&amp;lt;typename T&amp;gt;
std::vector&amp;lt;T&amp;gt; flatten(const std::vector&amp;lt;std::vector&amp;lt;T&amp;gt;&amp;gt;&amp;amp; nestedVector) {
    std::vector&amp;lt;T&amp;gt; flatVector;
    for (const auto&amp;amp; subVector : nestedVector) {
        for (const auto&amp;amp; element : subVector) {
            flatVector.push_back(element);
        }
    }
    return flatVector;
}&lt;/LI-CODE&gt;
&lt;P&gt;read_graph.h&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;fstream&amp;gt;
#include &amp;lt;sstream&amp;gt;
#include &amp;lt;vector&amp;gt;
// #include "print_vector.h"


std::vector&amp;lt;int&amp;gt; getDegrees(const std::vector&amp;lt;std::vector&amp;lt;int&amp;gt;&amp;gt; &amp;amp;graph, int numNodes) {
    std::vector&amp;lt;int&amp;gt; degrees(numNodes);
    for (auto &amp;amp;edge : graph) {
        ++degrees[edge[0]];
        ++degrees[edge[1]];
    }
    return degrees;
}

std::vector&amp;lt;std::vector&amp;lt;int&amp;gt;&amp;gt; Read_graph(std::string file_name){
    // Apertura del file
    std::ifstream file(file_name);
    if (!file.is_open()) {
        std::cerr &amp;lt;&amp;lt; "Impossibile aprire il file" &amp;lt;&amp;lt; std::endl;
        return {};
    }

    // Lettura del file riga per riga
    std::string line;
    std::vector&amp;lt;std::vector&amp;lt;int&amp;gt;&amp;gt; graph;
    while (getline(file, line)) {
        std::stringstream ss(line);
        std::string cell;
        std::vector&amp;lt;int&amp;gt; edge;
        while (getline(ss, cell, ',')) {
            edge.push_back(stoi(cell));
        }
        graph.push_back(edge);
    }
    file.close();
    return graph;
}

int countNodes(std::vector&amp;lt;std::vector&amp;lt;int&amp;gt;&amp;gt; graph){
    int numNodes = 0;
    for(auto &amp;amp;i : graph){
        for(auto &amp;amp;j : i){
            numNodes = std::max(numNodes, j);
        }
    }
    return numNodes;
}&lt;/LI-CODE&gt;
&lt;P&gt;guideline.h&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;#include &amp;lt;iostream&amp;gt;

void guideline(){
    std::cout&amp;lt;&amp;lt;"Not enough input parameters!\n\n";
    std::cout&amp;lt;&amp;lt;"Usage guide:\n\n";
    std::cout&amp;lt;&amp;lt;"First parameter:\tDevice code (as int number)\n";
    std::cout&amp;lt;&amp;lt;"\t\t1: CPU\n";
    std::cout&amp;lt;&amp;lt;"\t\t2: GPU\n";
    std::cout&amp;lt;&amp;lt;"\t\t3: FPGA\n";
    std::cout&amp;lt;&amp;lt;"Second parameter:\tCsv path of the dataset\n";
    std::cout&amp;lt;&amp;lt;"Available Ones:\n\n";
    std::cout&amp;lt;&amp;lt;"\t\t\"datasets/cit-Patents.csv\""&amp;lt;&amp;lt;std::endl;
    std::cout&amp;lt;&amp;lt;"\t\t\"datasets/soc-LiveJournal1.csv\""&amp;lt;&amp;lt;std::endl;
    std::cout&amp;lt;&amp;lt;"\t\t\"datasets/twitter-2010.csv\""&amp;lt;&amp;lt;std::endl;
    std::cout&amp;lt;&amp;lt;"\t\t\"datasets/web-uk-2005-all.csv\""&amp;lt;&amp;lt;std::endl;
    std::cout&amp;lt;&amp;lt;"Third parameter:\tThreshold (float value)\n";
    std::cout&amp;lt;&amp;lt;"Fourth parameter:\tDamping (float value)\n";
    }&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;printTime.h&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;chrono&amp;gt;

void print_time(std::chrono::time_point&amp;lt;std::chrono::steady_clock&amp;gt; start, std::chrono::time_point&amp;lt;std::chrono::steady_clock&amp;gt; end){
    std::cout &amp;lt;&amp;lt; "Elapsed time in nanoseconds: " &amp;lt;&amp;lt; std::chrono::duration_cast&amp;lt;std::chrono::nanoseconds&amp;gt;(end - start).count() &amp;lt;&amp;lt; " ns" &amp;lt;&amp;lt; std::endl;
    std::cout &amp;lt;&amp;lt; "Elapsed time in microseconds: " &amp;lt;&amp;lt; std::chrono::duration_cast&amp;lt;std::chrono::microseconds&amp;gt;(end - start).count() &amp;lt;&amp;lt; " µs" &amp;lt;&amp;lt; std::endl;
    std::cout &amp;lt;&amp;lt; "Elapsed time in milliseconds: " &amp;lt;&amp;lt; std::chrono::duration_cast&amp;lt;std::chrono::milliseconds&amp;gt;(end - start).count() &amp;lt;&amp;lt; " ms" &amp;lt;&amp;lt; std::endl;
    std::cout &amp;lt;&amp;lt; "Elapsed time in seconds: " &amp;lt;&amp;lt; std::chrono::duration_cast&amp;lt;std::chrono::seconds&amp;gt;(end - start).count() &amp;lt;&amp;lt; " sec" &amp;lt;&amp;lt; std::endl;    
}&lt;/LI-CODE&gt;</description>
      <pubDate>Sun, 29 Jan 2023 14:59:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Error-Passing-Objects-to-PageRank/m-p/1451101#M2754</guid>
      <dc:creator>Alechiove</dc:creator>
      <dc:date>2023-01-29T14:59:38Z</dc:date>
    </item>
    <item>
      <title>Re: Error Passing Objects to PageRank</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Error-Passing-Objects-to-PageRank/m-p/1452527#M2761</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for posting in Intel Communities.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could you please try calculating the flatGraph size outside the while loop block using the below command?&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;auto fd=flatGraph.size();&lt;/LI-CODE&gt;
&lt;P&gt;Hope this resolves your issue. Please let us know if you still face any issues.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks and Regards,&lt;/P&gt;
&lt;P&gt;Pendyala Sesha Srinivas&lt;/P&gt;</description>
      <pubDate>Thu, 02 Feb 2023 07:06:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Error-Passing-Objects-to-PageRank/m-p/1452527#M2761</guid>
      <dc:creator>SeshaP_Intel</dc:creator>
      <dc:date>2023-02-02T07:06:48Z</dc:date>
    </item>
    <item>
      <title>Re: Error Passing Objects to PageRank</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Error-Passing-Objects-to-PageRank/m-p/1453011#M2766</link>
      <description>&lt;P&gt;Yes, it Worked! thank you so much&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 03 Feb 2023 10:38:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Error-Passing-Objects-to-PageRank/m-p/1453011#M2766</guid>
      <dc:creator>Alechiove</dc:creator>
      <dc:date>2023-02-03T10:38:35Z</dc:date>
    </item>
    <item>
      <title>Re:Error Passing Objects to PageRank</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Error-Passing-Objects-to-PageRank/m-p/1453043#M2767</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thanks for accepting our solution. If you need any additional information, please post a new question as this thread will no longer be monitored by Intel.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;Pendyala Sesha Srinivas&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 03 Feb 2023 12:11:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Error-Passing-Objects-to-PageRank/m-p/1453043#M2767</guid>
      <dc:creator>SeshaP_Intel</dc:creator>
      <dc:date>2023-02-03T12:11:10Z</dc:date>
    </item>
  </channel>
</rss>

