passlab / homp Goto Github PK
View Code? Open in Web Editor NEWHOMP: Runtime System for Hybrid OpenMP
License: Other
HOMP: Runtime System for Hybrid OpenMP
License: Other
Currently, halo-region exchange will do copy of the halo region even in shared data maps, which is actually not needed. We should have the runtime to detect the kinds of maps are and decide whether a actually memcpy should be called or not. This could be done in omp_map_malloc and/or omp_halo_region_pull functions.
It generates segmentation-fault code for the parallel region. use either nvcc (which use gcc 4.8.5 from the system) or explicitly use gcc-5.3.0
nvcc by default will use system gcc, which should be less than 4.9
For the following example, we will need to add a ratio (2) in the align policy to align array x to y
int y[n];
int x[2*n];
map(from:y distribute(BLOCK)) map(to: distribute(ALIGN(y, 2)))
for (i=0;i<n;i++) {
y[i] = x[2*i]
}
In CUTOFF, when one dev is turned off for offloading, it does not involve in data exchange which requires inter-dev barrier operations, thus there is deadlock.
Not sure what is the easiest way to fix at this moment
For some applications, we can simply copy all the possible data to a device at once, and then perform distribution of loops for load balance. This should well for iterative loops (e.g. block matching) in that all data (the two images) will be read.
Even if there are data that will be written by the loop body, our runtime should keep record on which data region(map) is updated by each device and then they copy back all the written data to the host.
Currently we use a single map object to keep track of data that are distributed in those policies that need more than one decision making. One alternative is to create and use a new map each time we need to distribute data or loop.
For some applications, we can simply copy all the possible data to a device at once, and then perform distribution of loops for load balance. This should well for iterative loops (e.g. block matching) in that all data (the two images) will be read.
Even if there are data that will be written by the loop body, our runtime should keep record on which data region(map) is updated by each device and then they copy back all the written data to the host.
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.