cmps: display the status of current CM processes
Useful to tell how loaded the machine is.
*'d pid tells which one is currently running.
djm: distributed job manager
Method to submit batch jobs. Does a nice
job with redireting I/O appropriately.
-help to get options
Main interface 'job'
Useful Commands:
status Show the status of all running jobs
submit Submit a background job
run run an interactive job
signal send a signal to a running job
kill kill a running job
cmjoin: produce a CM5 executable from
two standard executable files.
cmld: CM5 link editor for object files.
This is what you use in a Makefile.
ts-daemon: Liaison process between host and nodes
Sometimes goes down.
Mail to fraser@cs if the thing goes down.
- host/node programs
- sometimes it's hidden from you.
- Standard .o files.
- Use an already working makefile (take the one we supply)
TARGET = hello
HOST_SRCS = hello-host.c
HOST_OBJS = $(HOST_SRCS:%.c=%.o)
NODE_SRCS = hello-node.c
NODE_OBJS = $(NODE_SRCS:%.c=%.o)
INCDIRS = /usr/cm5/include
HOST_LIBDIRS = /usr/cm5/lib
NODE_LIBDIRS = /usr/cm5/lib
HOST_LIBS =
NODE_LIBS =
CC = gcc
%-host.o: %-host.c
$(CC) -DCP_CODE $(CFLAGS) $(INCDIRS:%=-I%) -c $<
%-node.o: %-node.c
$(CC) $(CFLAGS) $(INCDIRS:%=-I%) -c $<
$(TARGET): $(NODE_OBJS) $(HOST_OBJS)
/usr/cm5/bin/cmmd-ld \
-comp $(CC) -o $(TARGET) \
-node $(NODE_OBJS) $(NODE_LIBDIRS:%=-L%) $(NODE_LIBS:%=-l%) \
-host $(HOST_OBJS) $(HOST_LIBDIRS:%=-L%) $(HOST_LIBS:%=-l%)
clean:
rm -f $(TARGET) $(NODE_OBJS) $(HOST_OBJS) *~ .make.state .nse_depinfo
Solution:
#define mul_mfmf_mf2x2(c11,c12,c21,c22,A,Asep,B,Bsep)
{
const float *bp,*ap;
float b1,b2;
float a;
bp = B;
b1 = bp[0]; b2 = bp[1];
bp += Bsep;
ap = A;
a = ap[0]; ap += Asep;
c11 += a*b1; /* c11 += a11*b11 */
c12 += a*b2; /* c12 += a11*b12 */
a = ap[0]; ap = &A[1];
c21 += a*b1; /* c21 += a21*b11 */
c22 += a*b2; /* c22 += a21*b12 */
b1 = bp[0]; b2 = bp[1];
a = ap[0]; ap += Asep;
c11 += a*b1; /* c11 += a12*b21 */
c12 += a*b2; /* c12 += a12*b22 */
a = ap[0];
c21 += a*b1; /* c21 += a22*b21 */
c22 += a*b2; /* c22 += a22*b22 */
}
Discuss implications of this for the RS6000?