Re: [pooma-dev] Re: Cheetah Status
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [pooma-dev] Re: Cheetah Status



On Sat, 14 Aug 2004, Richard Guenther wrote:

> Jeffrey D. Oldham wrote:
> > Richard Guenther wrote:
> >
> >> Btw. I have some Cheetah fixes myself, I can collect these together
> >> and maybe we could provide at least a patch for download along the
> >> cheetah tarball.
> >>
> >> Richard.
> >
> >
> > Yes, let's put together your changes and Steve Nolen's changes into a
> > new Cheetah 1.1.5 release.  Will you please send them to me?  I'll
> > create a Cheetah CVS repository.
>
> I'll send my local changes to you on Monday.  But I think we shouldn't
> release until others are reporting success with a set of collected
> patches.  Obviously I only tested MPI and not the various other means of
> parallelism in the Cheetah library.

Ok, here's my set of local changes to the Cheetah library.

Sometimes  Richard Guenther <richard.guenther@xxxxxxxxxxxxxxxx>

	* BUGS: new.
	bin/makeinstall: ignore SCCS dirs.
	config/LINUXGCC.conf: use -g, not -ggdb.
	config/LINUXICC.conf: new.
	configure: don't set shmem_locksrc, build-system
	is broken.
	src/Controller/ControllerFactory.cpp: build factory
	with arg not removed.
	src/Controller/Group.h: reorder initializers.
	src/Controller/Shmem/MM_Allocator.h: remove broken
	method.
	src/Utilities/CheetahRefCountedPtr.h: const pointer
	by value makes no sense.

This patch is against the cheetah-1.1.4 tarball.

Richard.

--
Richard Guenther <richard dot guenther at uni-tuebingen dot de>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/
diff -Nru a/cheetah-1.1.4/BUGS b/cheetah-1.1.4/BUGS
--- /dev/null	Wed Dec 31 16:00:00 196900
+++ b/cheetah-1.1.4/BUGS	2004-08-16 10:04:52 +02:00
@@ -0,0 +1,9 @@
+From Richard Guenther <rguenth@xxxxxxxxxxxxxxxxxxxxxxxxxxx>:
+
+ You may experience problems with passing the controller specification
+ argument using the MPICH mpirun implementation. This one doesnt set
+ up the arguments for the clients before calling MPI_Init.
+ To work around this deficiency store a file called CHEETAH_RUNTIME
+ containing "-mpi" as the first line in the same directory as the
+ executable.
+
diff -Nru a/cheetah-1.1.4/bin/makeinstall b/cheetah-1.1.4/bin/makeinstall
--- a/cheetah-1.1.4/bin/makeinstall	2004-08-16 10:04:52 +02:00
+++ b/cheetah-1.1.4/bin/makeinstall	2004-08-16 10:04:52 +02:00
@@ -46,8 +46,8 @@
 ### copy the source flies
 cd $fromsrc
 echo "Copying source files to $tosrc ..."
-hflist=`find . -name "*.h" -print`
-cflist=`find . -name "*.cpp" -print`
+hflist=`find . -name "*.h" -print | grep -v SCCS`
+cflist=`find . -name "*.cpp" -print | grep -v SCCS`
 tar cf - $hflist $cflist | (cd $tosrc ; tar xvf -)
 
 ### copy the library files
diff -Nru a/cheetah-1.1.4/config/LINUXGCC.conf b/cheetah-1.1.4/config/LINUXGCC.conf
--- a/cheetah-1.1.4/config/LINUXGCC.conf	2004-08-16 10:04:52 +02:00
+++ b/cheetah-1.1.4/config/LINUXGCC.conf	2004-08-16 10:04:52 +02:00
@@ -82,7 +82,7 @@
 
 ### debug or optimized build settings for C++ applications
 
-$cppdbg     = "-ggdb";
+$cppdbg     = "-g";
 
 $cppopt     = "-O3 -funroll-loops";
 
diff -Nru a/cheetah-1.1.4/config/LINUXICC.conf b/cheetah-1.1.4/config/LINUXICC.conf
--- /dev/null	Wed Dec 31 16:00:00 196900
+++ b/cheetah-1.1.4/config/LINUXICC.conf	2004-08-16 10:04:52 +02:00
@@ -0,0 +1,128 @@
+###########################################################################
+# Cheetah configuration settings
+#
+# Platform: LINUX
+# Compiler: Intel C++ compiler (icc)
+#
+###########################################################################
+#
+# This file contains specialized settings indicating how to build Cheetah
+# with this platform and compiler.  This is a perl script executed by
+# the 'configure' script at the top level of the Cheetah directory structure.
+# This file has two sections:
+#   1) The locations of include files and libraries for external packages.
+#   3) The specialized settings on how to use this platform and compiler.
+# You should edit the lines in section 1) to the proper location of the
+# external packages.  Do not edit the lines in section 2) unless you
+# know what you're doing.
+#
+###########################################################################
+
+###########################################################################
+# Section 1: external package locations. 
+#   Include search directories should have a '-I' prepended.
+#   Library search directories should have a '-L' prepended.
+#   Library filenames should just list the name or use -l prefix as needed.
+#   Required defines should have -a '-D' prepended.
+###########################################################################
+
+### location of MM files, for shmem controller (if available)
+
+$has_shmem                 = 1;
+$shmem_default_dir         = "/home/cheetah/packages/mm/build/linux";
+$shmem_inc                 = "-I$shmem_default_dir/include";
+$shmem_lib                 = "-L$shmem_default_dir/lib -lmm";
+$shmem_def                 = "";
+$shmem_locksrc             = "Utilities/i386-lock.s";
+$shmem_lockobj             = "i386-lock.o";
+$shmem_as                  = "as";
+
+### location of ULM files, for ULM controller (if available)
+
+$has_ulm                   = 0;
+
+
+###########################################################################
+# Section 2: compilation settings
+###########################################################################
+
+
+###################
+### characteristics
+###################
+
+### the name of this architecture
+
+$archtype = "linux";
+$comptype = "icc";
+
+### are shared libraries supported?
+
+$canmakesharedlib = 1;
+$sharedext = "so";
+
+
+################
+### C++ settings
+################
+
+### general settings for using the C++ compiler, for both libs and apps
+
+$cpp        = "icc";
+
+$cppargs    = "-restrict";
+
+$cppex      = "-Kc++eh";           # flag to use exceptions
+$cppnoex    = "";                  # flag to turn off exceptions
+
+$cppverbose = "";                  # flag for verbose compiler output
+
+$cppshare   = "-KPIC";             # flag for compiling for shared libs
+
+
+### debug or optimized build settings for C++ applications
+
+$cppdbg     = "-g";
+
+$cppopt     = "-O3";
+
+
+###################
+### linker settings
+###################
+
+$link        = "icc";
+
+$linkargs    = "\$(CHEETAH_CXX_ARGS)";
+
+$linkverbose = "";
+
+$linkshare   = "";
+
+
+#####################
+### archiver settings
+#####################
+
+$ar          = "ar";
+
+$arargs      = "rcsl";
+
+$arshare     = "icc";             # program to make shared lib
+
+$arshareargs = "-shared -o";      # arguments to make shared lib
+
+
+# ACL:rcsinfo
+#  ----------------------------------------------------------------------
+#  $RCSfile: LINUXGCC.conf,v $   $Author: rasmussn $
+#  $Revision: 1.3 $   $Date: 2000/06/26 22:07:27 $
+#  ----------------------------------------------------------------------
+# ACL:rcsinfo
+
+###########################################################################
+# the last line of this file must be a '1' so that Perl sees a non-zero
+# results from this file
+###########################################################################
+1;
+
diff -Nru a/cheetah-1.1.4/configure b/cheetah-1.1.4/configure
--- a/cheetah-1.1.4/configure	2004-08-16 10:04:52 +02:00
+++ b/cheetah-1.1.4/configure	2004-08-16 10:04:52 +02:00
@@ -846,7 +846,7 @@
     {
       # make sure we don't try to set up any assembly file
       # with mutex lock code
-      $shmem_locksrc = "";
+      #$shmem_locksrc = "";
     }
 }
 
diff -Nru a/cheetah-1.1.4/src/Controller/ControllerFactory.cpp b/cheetah-1.1.4/src/Controller/ControllerFactory.cpp
--- a/cheetah-1.1.4/src/Controller/ControllerFactory.cpp	2004-08-16 10:04:52 +02:00
+++ b/cheetah-1.1.4/src/Controller/ControllerFactory.cpp	2004-08-16 10:04:52 +02:00
@@ -121,17 +121,21 @@
 	  if (p->first == argv[i])
 	    {
 	      //
-	      // We have a match!  Delete this arg from the input
-	      // list.
+	      // We have a match! Build this factory.
+	      //
+	      ControllerImpl* impl = p->second(argc, argv);
+
+	      //
+	      // Delete the arg from the input list.
 	      //
 	      for (int j=i+1; j<argc; ++j)
 		argv[j-1] = argv[j];
 	      --argc;
 
 	      //
-	      // Build this factory and return it.
+	      // Return the factory.
 	      //
-	      return p->second(argc, argv);
+	      return impl;
 	    }
 	}
     }
diff -Nru a/cheetah-1.1.4/src/Controller/Group.h b/cheetah-1.1.4/src/Controller/Group.h
--- a/cheetah-1.1.4/src/Controller/Group.h	2004-08-16 10:04:52 +02:00
+++ b/cheetah-1.1.4/src/Controller/Group.h	2004-08-16 10:04:52 +02:00
@@ -49,7 +49,7 @@
   // state which must be corrected with the initialize() function.
   //
 
-  Group() : nContexts_m(-1), myContext_m(NOT_A_MEMBER), ranks_m(0), id_m(0) { }
+  Group() : myContext_m(NOT_A_MEMBER), nContexts_m(-1), ranks_m(0), id_m(0) { }
   
   Group(int nContexts, int myContext, int* ranks = 0, int id = 0);
 
diff -Nru a/cheetah-1.1.4/src/Controller/Shmem/MM_Allocator.h b/cheetah-1.1.4/src/Controller/Shmem/MM_Allocator.h
--- a/cheetah-1.1.4/src/Controller/Shmem/MM_Allocator.h	2004-08-16 10:04:52 +02:00
+++ b/cheetah-1.1.4/src/Controller/Shmem/MM_Allocator.h	2004-08-16 10:04:52 +02:00
@@ -55,9 +55,6 @@
   //
   pointer allocate(int n) { return (pointer)MM_malloc(n*sizeof(T)); }
 
-  template<class P>
-  void allocate(int n, P) { return (pointer)MM_malloc(n*sizeof(T)); }
-
   //
   // Free back to shared memory.
   //
diff -Nru a/cheetah-1.1.4/src/Utilities/CheetahRefCountedPtr.h b/cheetah-1.1.4/src/Utilities/CheetahRefCountedPtr.h
--- a/cheetah-1.1.4/src/Utilities/CheetahRefCountedPtr.h	2004-08-16 10:04:52 +02:00
+++ b/cheetah-1.1.4/src/Utilities/CheetahRefCountedPtr.h	2004-08-16 10:04:52 +02:00
@@ -79,7 +79,7 @@
   // Assignment operators increment the reference count.
 
   RefCountedPtr & operator=(const RefCountedPtr &);
-  RefCountedPtr & operator=(T * const);
+  RefCountedPtr & operator=(T *);
 
   //============================================================
   // Accessors and Mutators