- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
if the array size changed after function, how to do with parallel loop ?
Please give a complete code, Thank You!
This is a c++ code on common PC,
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
void del_num(string numbers[], int idx, int &size)
{
int i;
for(i = idx; i < size - 1; i++)
{
numbers = numbers[i + 1];
}
size--;
}
void del_dup(string numbers[], int &size)
{
int i, j;
string number;
for(i = 0; i < size; i++)
{
number = numbers;
for(j = i + 1; j < size; j++)
{
if(number == numbers)
{
del_num(numbers, j, size); j--;
}
}
}
}
string numbers[] = { "8BCD", "7ED3", "5408", "7684", "804C",
"8BCD", "7ED3", "5408", "7684", "80gC",
"8BCD", "7ED3", "54e8", "76f4", "804C",
"8B1D", "7ED3", "5408", "7684", "804C"};
int main()
{
int size = sizeof(numbers) / sizeof(numbers[0]);
cout << size << "=init _ size " << endl;
del_dup(numbers, size);
for(int i = 0; i < size; i++)
cout << numbers << ' '; cout << endl;
cout << size << "=size " << endl;
return 0;
}
This is the result :
$ ./d4 20=init _ size 8BCD 7ED3 5408 7684 804C 80gC 54e8 76f4 8B1D 9=size
- Tags:
- Community
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Can you tell us the exact issue that you are facing?
Rahul
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How to write the those code with parallel loop on (oneapi )dpc++ devcloud platform?
the normal parallel loop with a integer value for the size of loop, if i write array after fuction size of max of loop was changed, how to do it? please give a sample.like code i give on pc.
i needs help please translate my code with parralel loop for the string array on devcloud linux system use bash with instruction "ssh " to login, dpc++ compiler.
full code example like i give at first. please!
Please make the parallel loop as a function outside of main() function, code style maybe like that like that :
#include <CL/sycl.hpp>
#include <iostream>
using namespace std;
using namespace cl::sycl;
struct myStruct
{
int id=1234;
char a[50];
};
struct myStruct dt_v1[10];
struct myStruct dt_v2[10];
void abc1(){
strcpy(dt_v1[0].a, "102755703");
strcpy(dt_v1[1].a, "ab10");
strcpy(dt_v1[2].a, "cd10");
strcpy(dt_v1[3].a, "EF13");
strcpy(dt_v1[4].a, "5");
strcpy(dt_v1[5].a, "##184");
strcpy(dt_v1[6].a, "@@1");
strcpy(dt_v1[7].a, "&&13");
strcpy(dt_v1[8].a, "%%14");
strcpy(dt_v1[9].a, "!!1");
}
void abc2(){
strcpy(dt_v2[0].a, "102755703");
strcpy(dt_v2[1].a, "ab10");
strcpy(dt_v2[2].a, "cd10");
strcpy(dt_v2[3].a, "EF13");
strcpy(dt_v2[4].a, "5");
strcpy(dt_v2[5].a, "##184");
strcpy(dt_v2[6].a, "@@1");
strcpy(dt_v2[7].a, "&&13");
strcpy(dt_v2[8].a, "%%14");
strcpy(dt_v2[9].a, "!!1");
}
void dpcpp_parallel(){
// ---------SYCL SCOPE STARTS------------
{
default_selector device_selector;
queue device_queue(device_selector);
cout<<device_queue.get_device().get_info<info::device::name>()<<std::endl; //print name of the device it is running on.
buffer<struct myStruct,1> buff_dt_v1(dt_v1,range<1>{10});
buffer<struct myStruct,1> buff_dt_v2(dt_v2,range<1>{10});
device_queue.submit([&](handler &cgh){
auto acc_dt_v1 =buff_dt_v1.get_access<access::mode::write>(cgh);
auto acc_dt_v2 =buff_dt_v2.get_access<access::mode::write>(cgh);
cgh.parallel_for<class StructClass>(range<1>{10},[=](id<1> index){
struct myStruct* myAcc1=(struct myStruct*)(&acc_dt_v1[index]);
struct myStruct* myAcc2=(struct myStruct*)(&acc_dt_v2[index]);
//**************your code logic starts from here**************************
// to access array "a" use this
char* myArray1=myAcc1->a;
char* myArray2=myAcc2->a;
// To access int "id" use this
int myId=myAcc->id;
});
});
}
}
int main(){
int test1=atoi(dt_v1[4].a);
std::cout<<"Converting char[] to int "<<test1<<std::endl;
abc1(); // Initialisation for dt_v1[]
abc2(); // Initialisation for dt_v2[]
dpcpp_parallel();
return 0;
}
thank you!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
This support is out of our scope. However, we are marking this as a community case so that other users can help you.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page