-
Notifications
You must be signed in to change notification settings - Fork 502
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extension to mpi programs #351
Open
incardon
wants to merge
108
commits into
cs01:master
Choose a base branch
from
incardon:extension_to_mpi_programs
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
108 commits
Select commit
Hold shift + click to select a range
497a751
Adding MPI support continuing
831c5de
Adding multi process GUI elements
20c9cf8
Process on focus
cf7307e
Adding MPI support
936bc39
Cluster
b3a0ffa
Adding mossing file
79e49ba
Nox testing passing
7bc9406
First pytest for mpi version
ffc4ae8
Refactoring tests for MPI
c68ae89
Testing JS with puppeters
905b189
Merge pull request #1 from cs01/master
a867e74
Fixing package.json
c7e1cef
MPI extension working with Pty
fc29ead
Fixing tests
49498bb
Fixing format to pass check
082cb87
Removing garbage
5d9e4f3
Adding openmpi to the testing machines
0f96f84
Adding openmpi to the testing machines
127580a
Adding openmpi to the testing machines (again)
d54b6d9
Fixing compiling nodes_name
c9b1ef3
Making the test more general
965c243
Fixing python test for Azure CI servers
a0e3f06
Trying 127.0.0.1 for debug session connection
4979556
Install gdbserver in the CI machines
cbd0230
Troubleshooting ...
2d3dec0
Moving from shell to bash
1260136
Fixing test
66d1bf4
Fixing Javascript test jest calling
feacf2c
Fixing Javascript test jest calling
f4b9a4b
Moving js to ts for the testing script
2e7a337
Cancel workflow
eac3fd7
Adding timeout
a814d29
Checking Adding timeout
469b73b
Apply small review changes
cdd0ace
Retry with timeout
aef0ef2
Timeout to 8 min
f9ae0a6
Removing __main__ and __init__ in gdbgui-mpi
f528fff
try to fix CI machines Stuck (still good to review)
11d55e5
try to fix CI machines Stuck
a4be66b
CI again ...
ecf29e4
CI again ...
2c3ecde
CI again ...
497703b
CI again ...
1d7b681
Trying without shell
889fc82
CI again ...
c7ee38d
CI again ...
efc49b7
CI again ...
9627de0
CI again ...
6538702
Moving build before test in js_tests ...
9648fd3
CI run after nox fix in previous commit
cbb95ef
Fixing lint test
cb1c7b1
Moving requirement of flaskio to setup.py
b213761
Merge pull request #2 from cs01/master
79fdd65
Fixing gdbgui with OpenFPM
9b94f15
Fixing conflicts
e8e0deb
Fixing github
1cb1950
Running setup.py before python testing
3273965
Adding python 3.9 amd fixing tests
259460d
Adding more time for print node file
e15ae69
Adding additional output in case of error
580ffab
More output
f42ed39
Fixing launching of print nodes
7f14fe5
Fixing launching of debugger
a9d89f4
Fixing lint
5088b53
Fixing lint and tests
b2a76be
Increase timeout limit
5583e09
Increase timeout limit
0af6893
Increase timeout limit
66e13ec
Eliminating potential deadlock
ea666ac
Reducing to two sessions instead of six
923a620
Forcing error t checl
ddebde7
Checking process.terminate ... does not terminate on github
9e22d9c
Checking process.terminate ... does not terminate on github
81f9565
Checking process.terminate ... does not terminate on github
e277bbd
More analyze
25d5a5e
More analyze
6c6abb1
More analyze
b0db403
More robust detection
6c27678
Fixing tests
1b7369d
Fixing tests
c8048e7
Fixing tests
973ac13
Fixing pagination and sigint
e0f6c9d
Fixing syntax
3e71552
Fixing syntax
37a6353
Fixing syntax
0c27d40
Fixing syntax
39ee11f
Fixing lint
93831e6
Fixing lint
8d15c97
Fixing test
6af6f3f
Fixing SIGINT for MPI
38c1e75
Set timeout for launching gdbgui server
01059cd
Set timeout for launching gdbgui server
d261481
Set timeout for launching gdbgui server
3d6c4aa
Fixing lint
9e2a8ae
Fixing test timeout
9133063
Adding saving breakpoints on cookies
48c805a
Fixing breakpoints saved on cookies + activate tests
e85a796
Fixing format
e6fe204
Fixing cookies breakpoints
509c596
Fixing formatting
56ab743
Adding bigger timeout for connection
722df00
Increasing even more timeout
0b7bffb
Reducing number of processors for testing to 2
d39f0e8
Adding case where the first breakpoint is at line 8 rather than 10
488f4fb
Fixing gdbgui
1252c83
Merge branch 'extension_to_mpi_programs' of https://github.com/incard…
d8cded6
Fixing Pagination ... again
fa184cc
Fixing lint
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
#! /bin/bash | ||
|
||
mpic++ -g -O0 -o print_nodes main.cpp |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/bin/sh | ||
# Usage: debug_server.sh <executable> <arguments> | ||
|
||
GDB_HOST=$(hostname) | ||
GDB_PORT=$(( 60000 + $OMPI_COMM_WORLD_RANK )) | ||
echo "GDB server for rank $OMPI_COMM_WORLD_RANK available on $GDB_HOST:$GDB_PORT" | ||
exec gdbserver :$GDB_PORT $* | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
#!/bin/bash | ||
|
||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" | ||
|
||
mpirun --oversubscribe -np $1 $DIR/print_nodes | ||
if [ ! -d gdbgui-mpi ]; then | ||
mkdir gdbgui-mpi | ||
fi | ||
mv nodes_name gdbgui-mpi/ | ||
mpirun --oversubscribe -np $1 $DIR/launch_gdb_server ${@:2} # & | ||
rm nodes_name | ||
#python -m gdbgui-mpi | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
#include <mpi.h> | ||
#include <stdio.h> | ||
#include <unistd.h> | ||
#include <string> | ||
#include <sstream> | ||
#include <iostream> | ||
|
||
int main(int argc, char** argv) { | ||
// Initialize the MPI environment | ||
MPI_Init(NULL, NULL); | ||
|
||
// Get the number of processes | ||
int world_size; | ||
MPI_Comm_size(MPI_COMM_WORLD, &world_size); | ||
|
||
// Get the rank of the process | ||
int world_rank; | ||
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); | ||
|
||
char name_[256]; | ||
int ret = gethostname(name_,256); | ||
std::string name(name_); | ||
|
||
if (ret == 0) | ||
{ | ||
int name_max_s = name.size()+1; | ||
int name_max_r = 0; | ||
|
||
MPI_Allreduce(&name_max_s,&name_max_r,1,MPI_INT,MPI_MAX,MPI_COMM_WORLD); | ||
|
||
std::stringstream ss; | ||
|
||
ss.width(10); | ||
ss << std::left << world_rank; | ||
ss.width(name_max_r); | ||
ss << name << std::endl; | ||
|
||
std::string proc_name = ss.str(); | ||
|
||
if (world_rank == 0) | ||
{ | ||
char * nodes; | ||
nodes = new char [(proc_name.size()+1)*world_size]; | ||
MPI_Gather(proc_name.c_str(),proc_name.size()+1,MPI_CHAR, | ||
nodes,proc_name.size()+1,MPI_CHAR,0,MPI_COMM_WORLD); | ||
|
||
// fiter names | ||
std::stringstream sf; | ||
|
||
for (int i = 0 ; i < world_size ; i++) | ||
{ | ||
sf << std::string(&nodes[i*(proc_name.size()+1)]); | ||
} | ||
|
||
FILE * pFile; | ||
pFile = fopen("nodes_name","w"); | ||
if (pFile!=NULL) | ||
{ | ||
fputs (sf.str().c_str(),pFile); | ||
fclose (pFile); | ||
} | ||
else | ||
{ | ||
printf("Error cannot create nodes_name \n"); | ||
} | ||
} | ||
else | ||
{ | ||
MPI_Gather(proc_name.c_str(),proc_name.size()+1,MPI_CHAR, | ||
NULL,0,MPI_CHAR,0,MPI_COMM_WORLD); | ||
} | ||
} | ||
else | ||
{ | ||
MPI_Abort(MPI_COMM_WORLD,-1); | ||
} | ||
|
||
// Finalize the MPI environment. | ||
MPI_Finalize(); | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the
gdbgui-mpi
folder might fit better inexamples/mpi
. There are already examples in theexamples
folder.