Commit b83cab46 authored by KLOCZKO Thibaud's avatar KLOCZKO Thibaud
Browse files

Merge branch 'master' of dtk.inria.fr:dtk/dtk

parents ad6c2350 1f0bb44a
......@@ -4,9 +4,9 @@
* Copyright (C) 2011 - Nicolas Niclausse, Inria.
* Created: Sat Feb 6 14:33:47 2010 (+0100)
* Version: $Id$
* Last-Updated: Wed Apr 4 15:15:58 2012 (+0200)
* By: Julien Wintz
* Update #: 188
* Last-Updated: ven. mai 11 17:22:31 2012 (+0200)
* By: Nicolas Niclausse
* Update #: 202
*/
/* Commentary:
......@@ -25,20 +25,24 @@
\section intro Introduction
There are 3 components in dtkDistributed architecture:
- 1 controller: dtkDistributedController (runs on the workstations/laptop)
- 1 server dtkDistributedServer (runs on the cluster frontend)
- N slaves dtkDistributedSlave (runs on the cluster nodes)
- 1 controller: dtkDistributedController (typically runs on the workstations/laptop)
- 1 server dtkDistributedServer (typically runs on the cluster frontend)
- N slaves dtkDistributedSlave (typically runs on the cluster nodes)
The slaves can communicate with each others through MPI, but the
The slaves can communicate with each others through MPI (using
dtkDistributedCommunicatorMpi) or TCP (using dtkDistributedCommunicatorTcp), but the
communications between the controller/slaves and the server is based on
TCP (using a dtkDistributedSocket object). There's no direct
communication between the controller and the slaves.
Currently, the server is able to take resources from OAR (see dtkDistributedServerManagerOar) and Torque (see dtkDistributedServerManagerTorque)
Currently, the server is able to take resources from OAR (see
dtkDistributedServerManagerOar), Torque (see
dtkDistributedServerManagerTorque) or any remote host available
through SSH (it will detect the number of cores of the host automatically).
The server can be started by the controller (with the deploy method)
using ssh; setup for a given server can be specified into the dtk.conf file,
within the distributed group, like this:
within the [distributed] group, like this:
@code
[distributed]
......@@ -51,6 +55,16 @@ If forward is set to true, then a ssh tunnel will be used for
communications between the controller and the server (useful to bypass
firewalls).
To be able to run a slave with MPI, you can configure the mpirun
parameters in the [distributed] group:
@code
[distributed]
nef-devel.inria.fr_mpirun_path==/opt/openmpi-gcc/current/bin/mpirun
nef-devel.inria.fr_mpirun_args=" -x DISPLAY=:0.0 "
@endcode
\section protocol dtkDistributed protocol
dtkDistributed protocol is loosely based on HTTP. This is encapsulated
......@@ -135,6 +149,11 @@ STARTED /job/<jobid>
content-size: 0
@endcode
The controller has a default rank value of -1 (dtkDistributedMessage::CONTROLLER_RANK), the server -2
(dtkDistributedMessage::SERVER_RANK), and when the controller needs to
separate commands from data communications (the dtkComposerNodeRemote
is using this), it should use -3 (dtkDistributedMessage::CONTROLLER_RUN_RANK).
\subsection data send data
the slave or the controller sends:
......@@ -186,7 +205,7 @@ output format is :
"ethernet" : "<1G|10G>",
"properties": {{"key": "value"}, ...},
},
"state" : "free|busy|down" }
"state" : "free|busy|down|standby|absent" }
, ... ],
}
@endcode
......
......@@ -4,9 +4,9 @@
* Copyright (C) 2011 - Thibaud Kloczko, Inria.
* Created: Mon Jan 30 11:34:40 2012 (+0100)
* Version: $Id$
* Last-Updated: Thu May 10 13:58:18 2012 (+0200)
* By: tkloczko
* Update #: 529
* Last-Updated: ven. mai 11 16:05:25 2012 (+0200)
* By: Nicolas Niclausse
* Update #: 530
*/
/* Commentary:
......@@ -163,7 +163,5 @@ bool dtkComposerEvaluator::step(bool run_concurrent)
}
}
qApp->processEvents();
return !d->stack.isEmpty();
}
......@@ -4,9 +4,9 @@
* Copyright (C) 2008-2011 - Julien Wintz, Inria.
* Created: Tue Apr 24 23:29:24 2012 (+0200)
* Version: $Id$
* Last-Updated: Thu May 3 11:09:59 2012 (+0200)
* By: Julien Wintz
* Update #: 145
* Last-Updated: ven. mai 11 16:18:49 2012 (+0200)
* By: Nicolas Niclausse
* Update #: 149
*/
/* Commentary:
......@@ -78,6 +78,7 @@ dtkComposerNodeView::~dtkComposerNodeView(void)
void dtkComposerNodeView::run(void)
{
emit runned();
qApp->processEvents();
}
QString dtkComposerNodeView::type(void)
......
......@@ -4,9 +4,9 @@
* Copyright (C) 2008 - Julien Wintz, Inria.
* Created: Wed May 25 14:15:13 2011 (+0200)
* Version: $Id$
* Last-Updated: mer. avril 25 16:39:33 2012 (+0200)
* Last-Updated: ven. mai 11 15:23:06 2012 (+0200)
* By: Nicolas Niclausse
* Update #: 1585
* Update #: 1586
*/
/* Commentary:
......@@ -304,6 +304,7 @@ void dtkDistributedController::deploy(const QUrl& server)
// and the server will stop when the ssh process
// is killed
args << "-t"; // do it twice to force tty allocation
args << "-x"; // disable X11 forwarding
args << server.host();
serverProc->setProcessChannelMode(QProcess::MergedChannels);
......
Supports Markdown
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