[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gcl-devel] Re: MPI
From: |
Camm Maguire |
Subject: |
Re: [Gcl-devel] Re: MPI |
Date: |
10 Oct 2002 12:38:24 -0400 |
Greetings! Welcome aboard!
The most convenient way to integrate your work on this module would be
for you to register as a user on the savanna.gnu.org website, and send
my your user id. I can then set you up as a gcl developer, with cvs
access, etc.
I'd like to support this in the main distribution. Hopefully, it will
serve as a catalyst for us to think about the proper way to support
3rd party functionality (X, mpi, blas, lapack,...).
Here is my preliminary patch just designed to see if I could get it
basically working on my cluster:
cd ~/gclmpi/
diff -c /home/camm/gclmpi/gcl-mpi.new /home/camm/gclmpi/gcl-mpi.ori
Only in /home/camm/gclmpi/gcl-mpi.new: #init-nofaslink.lsp#
diff -c /home/camm/gclmpi/gcl-mpi.new/Makefile
/home/camm/gclmpi/gcl-mpi.ori/Makefile
*** /home/camm/gclmpi/gcl-mpi.new/Makefile Thu Oct 3 10:29:37 2002
--- /home/camm/gclmpi/gcl-mpi.ori/Makefile Sun Nov 3 19:25:15 1996
***************
*** 1,10 ****
# You may need to edit the macros below.
SRC = .
# This assumes gcl is in your path. Otherwise, use a full pathname.
! GCL = /fix/t2/camm/gcl-2.5.0.cvs20020625/bin/gcl
# GCL_DIR needed only if doing: make gcl_libmpi OR nofaslink
! GCL_DIR = /fix/t2/camm/gcl-2.5.0.cvs20020625
LSP_FILES = ${SRC}/mpi_glue.lsp ${SRC}/mpi_defglue.lsp \
${SRC}/slave-listener.lsp ${SRC}/master-slave.lsp ${SRC}/init-gclmpi.lsp
--- 1,10 ----
# You may need to edit the macros below.
SRC = .
# This assumes gcl is in your path. Otherwise, use a full pathname.
! GCL = gcl
# GCL_DIR needed only if doing: make gcl_libmpi OR nofaslink
! GCL_DIR = /proj/gal2/KCL2/gcl-2.2
LSP_FILES = ${SRC}/mpi_glue.lsp ${SRC}/mpi_defglue.lsp \
${SRC}/slave-listener.lsp ${SRC}/master-slave.lsp ${SRC}/init-gclmpi.lsp
***************
*** 40,47 ****
nofaslink:
make gcl_libmpi
! (cd ${SRC}; echo '(compile-file "mpi_glue.lsp" :system-p t)' | ${GCL})
! - mv ${SRC}/mpi_glue.o ./
- mv ${SRC}/mpi_glue.data ${SRC}/so_locations ./
cp `which ${GCL}` `basename ${GCL}`-mpi
cp ${SRC}/init-nofaslink.lsp ./init.lsp
--- 40,47 ----
nofaslink:
make gcl_libmpi
! (cd ${SRC}; echo '(compile-file "mpi_glue.lsp")' | ${GCL})
! mv ${SRC}/mpi_glue.o ./
- mv ${SRC}/mpi_glue.data ${SRC}/so_locations ./
cp `which ${GCL}` `basename ${GCL}`-mpi
cp ${SRC}/init-nofaslink.lsp ./init.lsp
Only in /home/camm/gclmpi/gcl-mpi.new: Makefile~
Only in /home/camm/gclmpi/gcl-mpi.new: example.lsp~
Only in /home/camm/gclmpi/gcl-mpi.new: gcl-mpi
Only in /home/camm/gclmpi/gcl-mpi.new: init.lsp
Only in /home/camm/gclmpi/gcl-mpi.new: init.lsp.bck
Only in /home/camm/gclmpi/gcl-mpi.new: init.lsp.foo
Only in /home/camm/gclmpi/gcl-mpi.new: init.lsp~
Only in /home/camm/gclmpi/gcl-mpi.new: libmpi.a
diff -c /home/camm/gclmpi/gcl-mpi.new/master-slave.lsp
/home/camm/gclmpi/gcl-mpi.ori/master-slave.lsp
*** /home/camm/gclmpi/gcl-mpi.new/master-slave.lsp Thu Oct 3 14:25:37 2002
--- /home/camm/gclmpi/gcl-mpi.ori/master-slave.lsp Wed Oct 23 03:13:30 1996
***************
*** 120,129 ****
;;SHOULD CHANGE broadcast-tag TO RESULT OF MPI ENVIRONMENT
(if (>= curr-tag broadcast-tag) (setf curr-tag 0))
;;This could be DEAD-SLAVE
! ; (if (and (aref pending curr-tag)
! ; (not (eq (aref pending curr-tag) DEAD-SLAVE)))
! ; (error "Previous task appears to not yet have completed:~%~a~%"
! ; (aref pending curr-tag)))
(setf (aref pending curr-tag) task)
(setf (aref slave-tags dest) curr-tag)
,@(if trace `((if ,trace (format t "TRACE: -> ~d: ~s~%" dest task))))
--- 120,129 ----
;;SHOULD CHANGE broadcast-tag TO RESULT OF MPI ENVIRONMENT
(if (>= curr-tag broadcast-tag) (setf curr-tag 0))
;;This could be DEAD-SLAVE
! (if (and (aref pending curr-tag)
! (not (eq (aref pending curr-tag) DEAD-SLAVE)))
! (error "Previous task appears to not yet have completed:~%~a~%"
! (aref pending curr-tag)))
(setf (aref pending curr-tag) task)
(setf (aref slave-tags dest) curr-tag)
,@(if trace `((if ,trace (format t "TRACE: -> ~d: ~s~%" dest task))))
***************
*** 136,142 ****
(defvar *master-slave-trace* nil
"If no :trace keyword specified for master-slave, uses this default.
If non-nil and used, traces all messages inside function, master-slave")
-
;;SHOULD PROBABLY gensym LOCAL VAR'S OF master-slave
(defun master-slave (&key get-task set-task do-task
get-task-result update-environment buffer-size
--- 136,141 ----
Only in /home/camm/gclmpi/gcl-mpi.new: master-slave.lsp~
Only in /home/camm/gclmpi/gcl-mpi.new: mpi_glue.c
Only in /home/camm/gclmpi/gcl-mpi.new: mpi_glue.data
diff -c /home/camm/gclmpi/gcl-mpi.new/mpi_glue.lsp
/home/camm/gclmpi/gcl-mpi.ori/mpi_glue.lsp
*** /home/camm/gclmpi/gcl-mpi.new/mpi_glue.lsp Thu Oct 3 11:16:58 2002
--- /home/camm/gclmpi/gcl-mpi.ori/mpi_glue.lsp Mon Nov 11 04:57:02 1996
***************
*** 11,21 ****
(if (boundp 'user::gcl-mpi-src) user::gcl-mpi-src
*default-pathname-defaults*)))
)
! (defconstant mpi-include "mpi/mpi.h")
! ; (concatenate 'string
! ; (namestring (if (boundp 'user::gcl-mpi-src) user::gcl-mpi-src
! ; *default-pathname-defaults*))
! ; "/usr/include/mpi/mpi.h"
;; "../mpich-alpha/include/mpi.h"
))
--- 11,21 ----
(if (boundp 'user::gcl-mpi-src) user::gcl-mpi-src
*default-pathname-defaults*)))
)
! (defconstant mpi-include
! (concatenate 'string
! (namestring (if (boundp 'user::gcl-mpi-src) user::gcl-mpi-src
! *default-pathname-defaults*))
! "/home/gene/projects/mpinu/nov-11/mpi.h"
;; "../mpich-alpha/include/mpi.h"
))
***************
*** 79,85 ****
"#include <sys/resource.h> /* For getpriority(), setpriority(), setrlimit()
*/"
"#include <unistd.h> /* For getpid() inside nice() */"
$ static int logout_time = 60; /* default of 60 minutes */
! $ extern void sigint(void);
$
$ /* logout_time (minutes) guaranteed >= 0; 0 means disable timer */
$ /* Also, see autologout() */
--- 79,85 ----
"#include <sys/resource.h> /* For getpriority(), setpriority(), setrlimit()
*/"
"#include <unistd.h> /* For getpid() inside nice() */"
$ static int logout_time = 60; /* default of 60 minutes */
! $ extern sigint();
$
$ /* logout_time (minutes) guaranteed >= 0; 0 means disable timer */
$ /* Also, see autologout() */
Only in /home/camm/gclmpi/gcl-mpi.new: mpi_glue.lsp~
Only in /home/camm/gclmpi/gcl-mpi.new: mpi_glue.o
Only in /home/camm/gclmpi/gcl-mpi.new: saved_gcl_mpi
Diff finished at Thu Oct 10 12:35:23
Take care,
address@hidden (Gene Cooperman) writes:
> I'm pleased to see that some people are now using this code for GCL/MPI.
>
> I had developed the code about 7 years ago. During the first 6 years,
> there didn't seem to be any people using it. Since there is now
> some interest in it, I would be very interested in helping to update
> the code.
>
> I also have a PhD student, Viet Ha Nguyen (address@hidden), who
> is interested in working on this project.
>
> If you could send us a copy of the current version of GCL/MPI, with
> your patches, and a description of what is not working, we could work
> on fixing the rest of it. If GCL/MPI can then be distributed via the
> GCL web site, that would be even better.
>
> SIDE NOTE:
> Since the original GCL/MPI code, I had gone on to build a version that
> supports the same master-slave model of parallelism in C. That code
> is: TOP-C (Task Oriented Parallel C/C++)
> The URL is: http://www.ccs.neu.edu/home/gene/topc.html
> We also just started an open source project on it at freshmeat.org.
>
> We could support GCL/MPI from freshmeat.org or from your site.
> In either case, we would be very interesting in having GCL/MPI
> distributed from the GCL web site, and we would be happy to
> bring GCL/MPI up to date so others can easily use it.
> - Gene Cooperman
>
>
> _______________________________________________
> Gcl-devel mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/gcl-devel
>
>
--
Camm Maguire address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah