usarmyresearchlab / openshmem-epiphany Goto Github PK
View Code? Open in Web Editor NEWARL OpenSHMEM for Epiphany
ARL OpenSHMEM for Epiphany
Hi there
Once I intend to broadcast a variable in attached program called Td0 which is an unsigned int array containing 256 elements, I have faced a problem in the output (after broadcasting ). The last 8 elements of mentioned array did copy wrongly, the only solution which I found is to pass the number of elements more than 256 ( actual size) to 256+8!! I can not understand what is happened.
Kindly find the enclosed.
aesd.c.txt
aesd_epi_helper.c.txt
aesd_epi_helper.h.txt
device.c.txt
Makefile.txt
Hi there,
I am trying to use shmem_put() to realize the same functionality with shmem_broadcast(), because I'm interested in the time difference in between.
But the code I use below doesn't seem to get a correct answer, for core0, the rk[odd] are all right, but the rk[even] are not right, do I miss something?
#include <shmem.h>
long pSyncA[SHMEM_REDUCE_SYNC_SIZE] = { SHMEM_SYNC_VALUE };
int main(void)
{
shmem_init();
int my_pe = shmem_my_pe();
int n_pes = shmem_n_pes();
// vector for broadcast
int* rk = (int*) 0x5000;
// init vector value for every core
for (i=0; i < 16; i++){
if (my_pe == i) rk[i] = i;
else rk[i] = 88;
}
shmem_barrier_all();
// broadcast use shmem_put32() $# can't get crrect answer for all core's rk array
for(unsigned j = 0; j < 16; j++){
if(my_pe == j){
for(unsigned i = 0; i < 16; i++){
if(i != j) shmem_put32(&rk[j], &rk[j], 1, i);
}
}
}
shmem_barrier_all();
shmem_finalize();
}
And by the way, I am using Parallella Board, Epiphany III 16 core device with the Parabuntu 2016.11 release.
Hi! I'm using this project in a research. It will be cool if Makefiles use $(gcc) instead of gcc. This will allow to setup any gcc compiler.
Changing this:
$(gcc) -O3 $< -o $@ $(EINCS) $(ELIBS) -lpthread
To:
gcc -O3 $< -o $@ $(EINCS) $(ELIBS) -lpthread
In every makefile.
EDIT:
This was done in every example but in e_hello.
Thanks!
Dear Admin
I am trying to do all to all communication in my device program written for Epiphany.
Following is the initialization code:
//id stands for the thread ID.
for (j = 0; j < NUM_ROWS; ++j)
{
offsetj = id*NUM_ROWS + j;
local_dataIn[offsetj].real = j;
local_dataIn[offsetj].img = offsetj;
}
shmem_alltoall64(local_dataIn, local_dataIn, NUM_ROWS, 0, 0, npes, pSyncA);
While doing this only the first NUM_ROWS indices are copied correctly. Is there any thing wrong in the way I am using this function?
Any help appreciated!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.