change
authorbdemsky <bdemsky>
Tue, 3 Aug 2010 08:20:02 +0000 (08:20 +0000)
committerbdemsky <bdemsky>
Tue, 3 Aug 2010 08:20:02 +0000 (08:20 +0000)
Robust/src/Benchmarks/oooJava/sor/JGFSORBenchSizeD.java
Robust/src/Benchmarks/oooJava/sor/SORRunner.java
Robust/src/Runtime/garbage.c
Robust/src/Runtime/mlp_runtime.c
Robust/src/Runtime/mlp_runtime.h
Robust/src/buildscript

index bd1ce691e0005bd3b6b599785c7191e9ae20a81f..80d7605d1f075a5bf630232e81beade37fc14520 100644 (file)
@@ -23,13 +23,18 @@ public class JGFSORBenchSizeD{
   public static void main(String argv[]){
 
     int nthreads;
+    nthreads = 1;
+    int size = 3;
     if(argv.length != 0 ) {
-      nthreads = Integer.parseInt(argv[0]);
-    } else {
-      System.printString("The no of threads has not been specified, defaulting to 1\n");
-      System.printString("  \n");
-      nthreads = 1;
-    }
+      size = Integer.parseInt(argv[0]);
+    } 
+//    if(argv.length != 0 ) {
+//      nthreads = Integer.parseInt(argv[0]);
+//    } else {
+//      System.printString("The no of threads has not been specified, defaulting to 1\n");
+//      System.printString("  \n");
+//      nthreads = 1;
+//    }
 
     JGFInstrumentor instr = new JGFInstrumentor();
     //JGFInstrumentor.printHeader(2,0,nthreads);
@@ -37,7 +42,7 @@ public class JGFSORBenchSizeD{
     JGFSORBench sor;
     sor = new JGFSORBench(nthreads); 
 
-    int size = 3;
+   
     JGFInstrumentor.addTimer("Section2:SOR:Kernel", "Iterations",size, instr.timers);
 
     sor.JGFsetsize(size); 
index a66568d92af93baa20fce3fc3ae70a7b03805cfd..6891e3c708e52cc0f733195234ee41759ec7d22c 100644 (file)
@@ -19,7 +19,7 @@
  *                                                                         *
  **************************************************************************/
 
-class SORRunner extends Thread {
+class SORRunner  {
 
   int id, num_iterations;
   double G[][],omega;
@@ -147,5 +147,6 @@ class SORRunner extends Thread {
       }
       //barrier
     }//end of for
+
   } //end of run()
 }
index 9e7b62ee19ff8d08656dca91117237e71ffedc45..db7363a127e52cd22f2cc90270d35ed9728fde6b 100644 (file)
@@ -35,7 +35,7 @@ extern struct QI * tailqi;
 
 #define NUMPTRS 100
 
-#define INITIALHEAPSIZE 256*1024*1024L
+#define INITIALHEAPSIZE 8*1024*1024*1024L
 #define GCPOINT(x) ((INTPTR)((x)*0.99))
 /* This define takes in how full the heap is initially and returns a new heap size to use */
 #define HEAPSIZE(x,y) ((INTPTR)(x+y))*2
index a9cdb3e0d377a812d20a0297efe9d447b8802d6b..e106cc60ea093f2b155866cf12db6b6b9f33dee9 100644 (file)
@@ -20,9 +20,33 @@ void mlpInitOncePerThread() {
 */
 __thread SESEcommon_p seseCaller;
 
+__thread void * baseptr=NULL;
+
+__thread int spaceleft=0;
+
+#define MBLOCK 65536
+#define MLOW 1000
+
+void * MLPMALLOC(int size) {
+  //  printf("%d\n",size);
+  if (spaceleft<MLOW) {
+    baseptr=malloc(MBLOCK);
+    spaceleft=MBLOCK;
+  }
+  if (size>spaceleft) {
+    return malloc(size);
+  } else {
+    //rount size up
+    size=(size+7)&~7;
+    char *charbase=(char *)baseptr;
+    baseptr=(void *)(charbase+size);
+    spaceleft-=size;
+    return charbase;
+  }
+}
 
 void* mlpAllocSESErecord( int size ) {
-  void* newrec = RUNMALLOC( size );  
+  void* newrec = MLPMALLOC( size );  
   if( newrec == 0 ) {
     printf( "mlpAllocSESErecord did not obtain memory!\n" );
     exit( -1 );
@@ -32,12 +56,12 @@ void* mlpAllocSESErecord( int size ) {
 
 
 void mlpFreeSESErecord( void* seseRecord ) {
-  RUNFREE( seseRecord );
+  //  MLPFREE( seseRecord );
 }
 
 MemoryQueue** mlpCreateMemoryQueueArray(int numMemoryQueue){
   int i;
-  MemoryQueue** newMemoryQueue=(MemoryQueue**)RUNMALLOC( sizeof( MemoryQueue* ) * numMemoryQueue );
+  MemoryQueue** newMemoryQueue=(MemoryQueue**)MLPMALLOC( sizeof( MemoryQueue* ) * numMemoryQueue );
   for(i=0; i<numMemoryQueue; i++){
     newMemoryQueue[i]=createMemoryQueue();
   }
@@ -45,24 +69,24 @@ MemoryQueue** mlpCreateMemoryQueueArray(int numMemoryQueue){
 }
 
 REntry* mlpCreateREntryArray(){
-  REntry* newREntryArray=(REntry*)RUNMALLOC(sizeof(REntry)*NUMRENTRY);
+  REntry* newREntryArray=(REntry*)MLPMALLOC(sizeof(REntry)*NUMRENTRY);
   return newREntryArray;
 }
 
 REntry* mlpCreateFineREntry(int type, void* seseToIssue, void* dynID){
-  REntry* newREntry=(REntry*)RUNMALLOC(sizeof(REntry));
+  struct ___Object___ * obj=(struct ___Object___*)*((unsigned INTPTR *)dynID);
+  REntry* newREntry=(REntry*)MLPMALLOC(sizeof(REntry));
   newREntry->type=type;
   newREntry->seseRec=seseToIssue;
   newREntry->pointer=dynID;
-  if((*newREntry->pointer)!=0){// make sure it is not unresolved address.
-    struct ___Object___ * obj=(struct ___Object___*)((unsigned INTPTR)*newREntry->pointer);
+  if (obj!=NULL)
     newREntry->oid=obj->oid;
-  }
+  
   return newREntry;
 }
 
 REntry* mlpCreateREntry(int type, void* seseToIssue){
-  REntry* newREntry=(REntry*)RUNMALLOC(sizeof(REntry));
+  REntry* newREntry=(REntry*)MLPMALLOC(sizeof(REntry));
   newREntry->type=type;
   newREntry->seseRec=seseToIssue;
   return newREntry;
@@ -162,10 +186,10 @@ int generateKey(unsigned int data){
 
 Hashtable* createHashtable(){
   int i=0;
-  Hashtable* newTable=(Hashtable*)RUNMALLOC(sizeof(Hashtable));
+  Hashtable* newTable=(Hashtable*)MLPMALLOC(sizeof(Hashtable));
   newTable->item.type=HASHTABLE;
   for(i=0;i<NUMBINS;i++){
-    newTable->array[i]=(BinElement*)RUNMALLOC(sizeof(BinElement));
+    newTable->array[i]=(BinElement*)MLPMALLOC(sizeof(BinElement));
     newTable->array[i]->head=NULL;
     newTable->array[i]->tail=NULL;
   }
@@ -174,34 +198,34 @@ Hashtable* createHashtable(){
 }
 
 WriteBinItem* createWriteBinItem(){
-  WriteBinItem* binitem=(WriteBinItem*)RUNMALLOC(sizeof(WriteBinItem));
+  WriteBinItem* binitem=(WriteBinItem*)MLPMALLOC(sizeof(WriteBinItem));
   binitem->item.type=WRITEBIN;
   return binitem;
 }
 
 ReadBinItem* createReadBinItem(){
-  ReadBinItem* binitem=(ReadBinItem*)RUNMALLOC(sizeof(ReadBinItem));
+  ReadBinItem* binitem=(ReadBinItem*)MLPMALLOC(sizeof(ReadBinItem));
   binitem->index=0;
   binitem->item.type=READBIN;
   return binitem;
 }
 
 Vector* createVector(){
-  Vector* vector=(Vector*)RUNMALLOC(sizeof(Vector));
+  Vector* vector=(Vector*)MLPMALLOC(sizeof(Vector));
   vector->index=0;
   vector->item.type=VECTOR;
   return vector;
 }
 
 SCC* createSCC(){
-  SCC* scc=(SCC*)RUNMALLOC(sizeof(SCC));
+  SCC* scc=(SCC*)MLPMALLOC(sizeof(SCC));
   scc->item.type=SINGLEITEM;
   return scc;
 }
 
 MemoryQueue* createMemoryQueue(){
-  MemoryQueue* queue = (MemoryQueue*)RUNMALLOC(sizeof(MemoryQueue));
-  MemoryQueueItem* dummy=(MemoryQueueItem*)RUNMALLOC(sizeof(MemoryQueueItem));
+  MemoryQueue* queue = (MemoryQueue*)MLPMALLOC(sizeof(MemoryQueue));
+  MemoryQueueItem* dummy=(MemoryQueueItem*)MLPMALLOC(sizeof(MemoryQueueItem));
   dummy->type=3; // dummy type
   dummy->total=0;
   dummy->status=READY;
index 148f8594cae05960e5c48015d054917ad5c83e4e..0cf680e37420e4ca12ce48aebbf391d9cbe19b1d 100644 (file)
@@ -15,8 +15,8 @@
 #define TRUE 1
 #endif
 
-#define NUMBINS 64
-#define NUMREAD 64
+#define NUMBINS 512
+#define NUMREAD 16
 #define NUMITEMS 64
 #define NUMRENTRY 256
 
 #endif
 
 typedef struct REntry_t{
-  int type; // fine read:0, fine write:1, parent read:2, parent write:3 coarse: 4, parent coarse:5, scc: 6
   struct Hashtable_t* hashtable;
   struct BinItem_t* binitem;
   struct Vector_t* vector;
   struct SCC_t* scc;
   struct MemoryQueue_t* queue;
-  psemaphore parentStallSem;
   void* seseRec;
   INTPTR* pointer;
+  psemaphore parentStallSem;
+  int type; // fine read:0, fine write:1, parent read:2, parent write:3 coarse: 4, parent coarse:5, scc: 6
   int oid;
   int isBufMode;
 } REntry;
index 1de6f6cc075c7b5b8ceae8379a81c18b28942ed5..0a32ae2f01d124bcd8bbc0dda2d475f71d03ef18 100755 (executable)
@@ -492,8 +492,6 @@ then
 COREPROF=true
 JAVAOPTS="$JAVAOPTS -coreprof"
 EXTRAOPTIONS="$EXTRAOPTIONS -DCOREPROF -I$ROBUSTROOT/Runtime/coreprof"
-shift
-shift
 
 elif [[ $1 = '-mlp' ]]
 then