Commit ae8bc5fc authored by Francois Tessier's avatar Francois Tessier

Bug fix in examples. Interface for Cray X40

parent c17b9640
...@@ -4,4 +4,6 @@ ...@@ -4,4 +4,6 @@
*.error *.error
*.output *.output
miniHACC-AoS miniHACC-AoS
miniHACC-SoA miniHACC-SoA
\ No newline at end of file miniHACC-AoS-MPIIO
miniHACC-SoA-MPIIO
\ No newline at end of file
MPICC = mpicxx MPICC = mpicxx
MPI_CFLAGS = -g -O3 -Wall -I/bgsys/drivers/ppcfloor -I/bgsys/drivers/ppcfloor/spi/include/kernel/cnk -I${HOME}/install_bgq/include/ -DBGQ MPI_CFLAGS = -g -O3 -I/bgsys/drivers/ppcfloor -I/bgsys/drivers/ppcfloor/spi/include/kernel/cnk -I${HOME}/install_bgq/include/ -DBGQ
MPI_LDFLAGS = -lstdc++ -lpthread -lm -L${HOME}/install_bgq/lib/ -ltapioca MPI_LDFLAGS = -lstdc++ -lpthread -lm -L${HOME}/install_bgq/lib/ -ltapioca
all: miniHACC-AoS miniHACC-SoA all: miniHACC-AoS miniHACC-SoA miniHACC-AoS-MPIIO miniHACC-SoA-MPIIO
miniHACC-AoS:miniHACC-AoS.o miniHACC-AoS:miniHACC-AoS.cpp
$(MPICC) $(MPI_CFLAGS) miniHACC-AoS.o -o $@ $(MPI_LDFLAGS) $(MPICC) $(MPI_CFLAGS) $? -o $@ $(MPI_LDFLAGS)
miniHACC-AoS.o:miniHACC-AoS.cpp miniHACC-SoA:miniHACC-SoA.cpp
$(MPICC) $(MPI_CFLAGS) -c miniHACC-AoS.cpp $(MPICC) $(MPI_CFLAGS) $? -o $@ $(MPI_LDFLAGS)
miniHACC-SoA:miniHACC-SoA.o ### MPI I/O
$(MPICC) $(MPI_CFLAGS) miniHACC-SoA.o -o $@ $(MPI_LDFLAGS) miniHACC-AoS-MPIIO:miniHACC-AoS-MPIIO.cpp
$(MPICC) $(MPI_CFLAGS) $? -o $@ $(MPI_LDFLAGS)
miniHACC-SoA.o:miniHACC-SoA.cpp miniHACC-SoA-MPIIO:miniHACC-SoA-MPIIO.cpp
$(MPICC) $(MPI_CFLAGS) -c miniHACC-SoA.cpp $(MPICC) $(MPI_CFLAGS) $? -o $@ $(MPI_LDFLAGS)
clean: clean:
rm miniHACC-AoS miniHACC-SoA *.o HACC.dat rm miniHACC-AoS miniHACC-SoA miniHACC-AoS-MPIIO miniHACC-SoA-MPIIO *.o HACC.dat
...@@ -87,6 +87,7 @@ int main (int argc, char * argv[]) ...@@ -87,6 +87,7 @@ int main (int argc, char * argv[])
MPI_Exscan (&num_particles, &scan_size, 1, MPI_LONG_LONG, MPI_SUM, sub_comm); MPI_Exscan (&num_particles, &scan_size, 1, MPI_LONG_LONG, MPI_SUM, sub_comm);
if (0 == sub_myrank) { if (0 == sub_myrank) {
fprintf (stdout, GREEN "[INFO]" RESET " [%08d] miniHACC-AoS\n", mycolor);
fprintf (stdout, GREEN "[INFO]" RESET " [%08d] Write output file (AoS data layout)\n", mycolor); fprintf (stdout, GREEN "[INFO]" RESET " [%08d] Write output file (AoS data layout)\n", mycolor);
fprintf (stdout, GREEN "[INFO]" RESET " [%08d] --> %lld particles per rank\n", mycolor, num_particles); fprintf (stdout, GREEN "[INFO]" RESET " [%08d] --> %lld particles per rank\n", mycolor, num_particles);
fprintf (stdout, GREEN "[INFO]" RESET " [%08d] --> File size: %.2f MB (%lld particles)\n", fprintf (stdout, GREEN "[INFO]" RESET " [%08d] --> File size: %.2f MB (%lld particles)\n",
......
...@@ -87,6 +87,7 @@ int main (int argc, char * argv[]) ...@@ -87,6 +87,7 @@ int main (int argc, char * argv[])
MPI_Exscan (&num_particles, &scan_size, 1, MPI_LONG_LONG, MPI_SUM, sub_comm); MPI_Exscan (&num_particles, &scan_size, 1, MPI_LONG_LONG, MPI_SUM, sub_comm);
if (0 == sub_myrank) { if (0 == sub_myrank) {
fprintf (stdout, GREEN "[INFO]" RESET " [%08d] miniHACC-SoA\n", mycolor);
fprintf (stdout, GREEN "[INFO]" RESET " [%08d] Write output file (SoA data layout)\n", mycolor); fprintf (stdout, GREEN "[INFO]" RESET " [%08d] Write output file (SoA data layout)\n", mycolor);
fprintf (stdout, GREEN "[INFO]" RESET " [%08d] --> %lld particles per rank\n", mycolor, num_particles); fprintf (stdout, GREEN "[INFO]" RESET " [%08d] --> %lld particles per rank\n", mycolor, num_particles);
fprintf (stdout, GREEN "[INFO]" RESET " [%08d] --> File size: %.2f MB (%lld particles)\n", fprintf (stdout, GREEN "[INFO]" RESET " [%08d] --> File size: %.2f MB (%lld particles)\n",
......
#!/bin/bash #!/bin/bash
VARS="PAMID_VERBOSE=1 BG_SHAREDMEMSIZE=64 PAMID_COLLECTIVES=1 BGLOCKLESSMPIO_F_TYPE=0x47504653 PAMID_COLLECTIVES_MEMORY_OPTIMIZED=1" VARS="PAMID_VERBOSE=1 BG_SHAREDMEMSIZE=64 PAMID_COLLECTIVES=1 BGLOCKLESSMPIO_F_TYPE=0x47504653 PAMID_COLLECTIVES_MEMORY_OPTIMIZED=1"
NODES=256 NODES=512
PPN=16 PPN=16
NPROCS=$((NODES*PPN)) NPROCS=$((NODES*PPN))
TARGET="/projects/visualization/ftessier/debug" TARGET="/projects/visualization/ftessier/debug"
...@@ -17,7 +17,7 @@ export TAPIOCA_BUFFERSIZE=16777216 ...@@ -17,7 +17,7 @@ export TAPIOCA_BUFFERSIZE=16777216
function updateSettings() function updateSettings()
{ {
printenv | egrep "TAPIOCA_" printenv | egrep "TAPIOCA_"
SETTINGS="$SETTINGS TAPIOCA_DEVNULL=$TAPIOCA_DEVNULL" SETTINGS="TAPIOCA_DEVNULL=$TAPIOCA_DEVNULL"
SETTINGS="$SETTINGS TAPIOCA_COMMSPLIT=$TAPIOCA_COMMSPLIT" SETTINGS="$SETTINGS TAPIOCA_COMMSPLIT=$TAPIOCA_COMMSPLIT"
SETTINGS="$SETTINGS TAPIOCA_STRATEGY=$TAPIOCA_STRATEGY" SETTINGS="$SETTINGS TAPIOCA_STRATEGY=$TAPIOCA_STRATEGY"
SETTINGS="$SETTINGS TAPIOCA_NBAGGR=$TAPIOCA_NBAGGR" SETTINGS="$SETTINGS TAPIOCA_NBAGGR=$TAPIOCA_NBAGGR"
...@@ -28,6 +28,7 @@ function updateSettings() ...@@ -28,6 +28,7 @@ function updateSettings()
# Array of Structures # Array of Structures
######################### #########################
rm $TARGET/* rm $TARGET/*
updateSettings
runjob --block $COBALT_PARTNAME --envs $VARS $SETTINGS -p $PPN --np $NPROCS : ./miniHACC-AoS-MPIIO runjob --block $COBALT_PARTNAME --envs $VARS $SETTINGS -p $PPN --np $NPROCS : ./miniHACC-AoS-MPIIO
sleep 4 sleep 4
let j=0 let j=0
...@@ -39,6 +40,7 @@ do ...@@ -39,6 +40,7 @@ do
done done
rm $TARGET/* rm $TARGET/*
updateSettings
runjob --block $COBALT_PARTNAME --envs $VARS $SETTINGS -p $PPN --np $NPROCS : ./miniHACC-AoS runjob --block $COBALT_PARTNAME --envs $VARS $SETTINGS -p $PPN --np $NPROCS : ./miniHACC-AoS
sleep 4 sleep 4
let j=0 let j=0
...@@ -58,6 +60,7 @@ done ...@@ -58,6 +60,7 @@ done
# Structure of Arrays # Structure of Arrays
######################### #########################
rm $TARGET/* rm $TARGET/*
updateSettings
runjob --block $COBALT_PARTNAME --envs $VARS $SETTINGS -p $PPN --np $NPROCS : ./miniHACC-SoA-MPIIO runjob --block $COBALT_PARTNAME --envs $VARS $SETTINGS -p $PPN --np $NPROCS : ./miniHACC-SoA-MPIIO
sleep 4 sleep 4
let j=0 let j=0
...@@ -69,6 +72,7 @@ do ...@@ -69,6 +72,7 @@ do
done done
rm $TARGET/* rm $TARGET/*
updateSettings
runjob --block $COBALT_PARTNAME --envs $VARS $SETTINGS -p $PPN --np $NPROCS : ./miniHACC-SoA runjob --block $COBALT_PARTNAME --envs $VARS $SETTINGS -p $PPN --np $NPROCS : ./miniHACC-SoA
sleep 4 sleep 4
let j=0 let j=0
......
#ifndef SAMPLE_H #ifndef CRAY_CX40_THETA_LUSTRE_H
#define SAMPLE_H #define CRAY_CX40_THETA_LUSTRE_H
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
...@@ -7,32 +7,74 @@ ...@@ -7,32 +7,74 @@
class Topology: public iTopology { class Topology: public iTopology {
public: public:
int NetworkDimensions () { /**********************/
/* |-- Nodes */
/**********************/
int IONodeId () {
return 0; return 0;
} }
int RankToCoordinates ( int rank, int* coord ) {
int BridgeNodeId () {
return 0; return 0;
} }
int IONodeId () {
int ComputeNodeId () {
return 0; return 0;
} }
int BridgeNodeId () {
int ProcessPerNode () {
return 0;
}
/**********************/
/* |-- Network */
/**********************/
int NetworkDimensions () {
return 0; return 0;
} }
/* |---- Coordinates */
void RankToCoordinates ( int rank, int* coord ) {
}
void IONodeCoordinates ( int* coord ) {
}
/* |---- Distance */
int DistanceToIONode () { int DistanceToIONode () {
return 0; return 0;
} }
int DistanceToRank ( int destRank ) { int DistanceBetweenRanks ( int srcRank, int destRank ) {
return 0; return 0;
} }
int ProcessPerNode () {
/* |---- Routes */
int RouteToIONode ( int srcRank, int* path ) {
return 0; return 0;
} }
int RouteBetweenRanks ( int srcRank, int destRank, int* path ) {
return 0;
}
/* |---- Links */
void LinksList ( int* linksList ) {
}
}; };
#endif // SAMPLE_H #endif // CRAY_CX40_THETA_LUSTRE_H
...@@ -9,10 +9,10 @@ class iTopology { ...@@ -9,10 +9,10 @@ class iTopology {
/**********************/ /**********************/
/* |-- Nodes */ /* |-- Nodes */
/**********************/ /**********************/
virtual int ProcessPerNode () = 0;
virtual int IONodeId () = 0; virtual int IONodeId () = 0;
virtual int BridgeNodeId () = 0; virtual int BridgeNodeId () = 0;
// ComputeNodeId virtual int ComputeNodeId () = 0;
virtual int ProcessPerNode () = 0;
/**********************/ /**********************/
/* |-- Network */ /* |-- Network */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment