Skip to content

Difference between the omega installation #11

Description

@wlaw59

Difference between the omega installation I am playing with and the one included by CHiLL (by directory)

basic/
There are differences in the comments.
basic/include/BoolSet.h exists in the chill version, but not in mine
This file seems to be a copy of boolset.h which exists in both.
There are significant differences in the two files.

code_gen/
There are significant differences in CG.h and several other files

omega_calc/
It appears that some timing functionality was added in the CHiLL version, but other than that there are only minor differences

omega_lib/
SimpleHull.cpp has significant differences

Most of the differences in the other files are comments

Questions:
Can we fix the omega calculator in chill-dev?

Why is the codegen so different?

Executor AST Transformation

for (i=0; i<N; i++) {
    ...
}

AFTER:

for (w=0; w<numWaves; w++) {
  #pragma omp parallel for ….
  for (k=wave[w]; k<wave[w+1]; k++) {
     int i = levelSet[k];
     …
   }
}

{[i] -> [w,k,i] :0<=w<numWaves and wave(w)<=k<wave1(w) and i=levelSet(w,k)}
levelSet = wave_par(...);
Wave = …

// How MMS wants to specify this.
{[i] -> [w,k,i] :0<=w<numWaves and i in levelSet(w)}
levelSet() = wave_par(...);

symbolic numWaves;
symbolic wave(1);
symbolic wave1(1);
symbolic levelSet(2);
S := {[w,k,i] : 0<=w<numWaves and wave(w)<=k<wave1(w) and i=levelSet(w,k)};
codegen S;

for(t1 = 0; t1 <= numWaves-1; t1++) {
  for(t2 = wave(t1); t2 <= wave1(t1)-1; t2++) {
    t3=levelSet(t1,t2);
    s0(t1,t2,t3);
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions