Commit ae8bc5fc authored by Francois Tessier's avatar Francois Tessier

Bug fix in examples. Interface for Cray X40

parent c17b9640
......@@ -4,4 +4,6 @@
*.error
*.output
miniHACC-AoS
miniHACC-SoA
\ No newline at end of file
miniHACC-SoA
miniHACC-AoS-MPIIO
miniHACC-SoA-MPIIO
\ No newline at end of file
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
all: miniHACC-AoS miniHACC-SoA
all: miniHACC-AoS miniHACC-SoA miniHACC-AoS-MPIIO miniHACC-SoA-MPIIO
miniHACC-AoS:miniHACC-AoS.o
$(MPICC) $(MPI_CFLAGS) miniHACC-AoS.o -o $@ $(MPI_LDFLAGS)
miniHACC-AoS:miniHACC-AoS.cpp
$(MPICC) $(MPI_CFLAGS) $? -o $@ $(MPI_LDFLAGS)
miniHACC-AoS.o:miniHACC-AoS.cpp
$(MPICC) $(MPI_CFLAGS) -c miniHACC-AoS.cpp
miniHACC-SoA:miniHACC-SoA.cpp
$(MPICC) $(MPI_CFLAGS) $? -o $@ $(MPI_LDFLAGS)
miniHACC-SoA:miniHACC-SoA.o
$(MPICC) $(MPI_CFLAGS) miniHACC-SoA.o -o $@ $(MPI_LDFLAGS)
### MPI I/O
miniHACC-AoS-MPIIO:miniHACC-AoS-MPIIO.cpp
$(MPICC) $(MPI_CFLAGS) $? -o $@ $(MPI_LDFLAGS)
miniHACC-SoA.o:miniHACC-SoA.cpp
$(MPICC) $(MPI_CFLAGS) -c miniHACC-SoA.cpp
miniHACC-SoA-MPIIO:miniHACC-SoA-MPIIO.cpp
$(MPICC) $(MPI_CFLAGS) $? -o $@ $(MPI_LDFLAGS)
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[])
MPI_Exscan (&num_particles, &scan_size, 1, MPI_LONG_LONG, MPI_SUM, sub_comm);
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] --> %lld particles per rank\n", mycolor, num_particles);
fprintf (stdout, GREEN "[INFO]" RESET " [%08d] --> File size: %.2f MB (%lld particles)\n",
......
......@@ -87,6 +87,7 @@ int main (int argc, char * argv[])
MPI_Exscan (&num_particles, &scan_size, 1, MPI_LONG_LONG, MPI_SUM, sub_comm);
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] --> %lld particles per rank\n", mycolor, num_particles);
fprintf (stdout, GREEN "[INFO]" RESET " [%08d] --> File size: %.2f MB (%lld particles)\n",
......
#!/bin/bash
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
NPROCS=$((NODES*PPN))
TARGET="/projects/visualization/ftessier/debug"
......@@ -17,7 +17,7 @@ export TAPIOCA_BUFFERSIZE=16777216
function updateSettings()
{
printenv | egrep "TAPIOCA_"
SETTINGS="$SETTINGS TAPIOCA_DEVNULL=$TAPIOCA_DEVNULL"
SETTINGS="TAPIOCA_DEVNULL=$TAPIOCA_DEVNULL"
SETTINGS="$SETTINGS TAPIOCA_COMMSPLIT=$TAPIOCA_COMMSPLIT"
SETTINGS="$SETTINGS TAPIOCA_STRATEGY=$TAPIOCA_STRATEGY"
SETTINGS="$SETTINGS TAPIOCA_NBAGGR=$TAPIOCA_NBAGGR"
......@@ -28,6 +28,7 @@ function updateSettings()
# Array of Structures
#########################
rm $TARGET/*
updateSettings
runjob --block $COBALT_PARTNAME --envs $VARS $SETTINGS -p $PPN --np $NPROCS : ./miniHACC-AoS-MPIIO
sleep 4
let j=0
......@@ -39,6 +40,7 @@ do
done
rm $TARGET/*
updateSettings
runjob --block $COBALT_PARTNAME --envs $VARS $SETTINGS -p $PPN --np $NPROCS : ./miniHACC-AoS
sleep 4
let j=0
......@@ -58,6 +60,7 @@ done
# Structure of Arrays
#########################
rm $TARGET/*
updateSettings
runjob --block $COBALT_PARTNAME --envs $VARS $SETTINGS -p $PPN --np $NPROCS : ./miniHACC-SoA-MPIIO
sleep 4
let j=0
......@@ -69,6 +72,7 @@ do
done
rm $TARGET/*
updateSettings
runjob --block $COBALT_PARTNAME --envs $VARS $SETTINGS -p $PPN --np $NPROCS : ./miniHACC-SoA
sleep 4
let j=0
......
#ifndef SAMPLE_H
#define SAMPLE_H
#ifndef CRAY_CX40_THETA_LUSTRE_H
#define CRAY_CX40_THETA_LUSTRE_H
#include <stdio.h>
#include <stdlib.h>
......@@ -7,32 +7,74 @@
class Topology: public iTopology {
public:
int NetworkDimensions () {
/**********************/
/* |-- Nodes */
/**********************/
int IONodeId () {
return 0;
}
int RankToCoordinates ( int rank, int* coord ) {
int BridgeNodeId () {
return 0;
}
int IONodeId () {
int ComputeNodeId () {
return 0;
}
int BridgeNodeId () {
int ProcessPerNode () {
return 0;
}
/**********************/
/* |-- Network */
/**********************/
int NetworkDimensions () {
return 0;
}
/* |---- Coordinates */
void RankToCoordinates ( int rank, int* coord ) {
}
void IONodeCoordinates ( int* coord ) {
}
/* |---- Distance */
int DistanceToIONode () {
return 0;
}
int DistanceToRank ( int destRank ) {
int DistanceBetweenRanks ( int srcRank, int destRank ) {
return 0;
}
int ProcessPerNode () {
/* |---- Routes */
int RouteToIONode ( int srcRank, int* path ) {
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 {
/**********************/
/* |-- Nodes */
/**********************/
virtual int ProcessPerNode () = 0;
virtual int IONodeId () = 0;
virtual int BridgeNodeId () = 0;
// ComputeNodeId
virtual int ComputeNodeId () = 0;
virtual int ProcessPerNode () = 0;
/**********************/
/* |-- 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