GRID-Machine
view release on metacpan or search on metacpan
* make dist in remotetest.pl if not done
* number of cores in a machine.
modify "call" accordingly
copy from GRID::cluster
* use Net::OpenSSH
* errors in the REMOTE code due to 'use' etc. errors appear as a premature closed filenadle
fix this. Produce an accurate error message. Make a PIPE signal handler and display the error?
* Inline::C cache the program at the start in the remote machine
* sub method for GRID::Machine::Groups: launch the sub in all machines and then get the results
- around and filter and ...
- "eval" and "call" are almost the same in Group objects. Factorize!!!
- Write "eval" method for GRID::Machine::Group objects
- timer in the select object of the parallel "call" to avoid hanging forever.
The machine will be removed from the group. Exception if
no machines are left in the group
- allow arguments in the call method to be an iterator. This way we can have "lazy arguments"
"sub sub" can have a "lazy" arg and save memory
- We need to kind of calls or subs: one that makes the call on each machine, like
$c->chdir('tutu')
and the other a farm/master-worker sub
- divide and conquer and b&b: what to push? the result may imply new calls
push @result, ($t{0+$me}, $me->_get_result());
implement sort and other d&c examples
- allow Inline::C java, python and others making room for heterogenous programming
- fault tolerance: once there are no more tasks to send, poll - from time to time -
the machines to see if the remote processes are alive. If not, resend the problem/job
to another alive machine
- From time to time, store the results in the result file, provide a recover parameter allowing
the recovery from a failure
* take from GRID::Cluster the automatic authentication installator
* I'm trying to see how IPC::PerlSSH behaves in case the underlying ssh connection gets disconnected.
http://www.perlmonks.org/?node_id=792383
* Write an example of remotelibs in the constructor
* Writing makemethod: make a proxy for an existing sub
- factorize
- documentation
- tests
* allow the user to load remote modules at bootstrap
in new: bootstrapmodules => ...
* document method putstringcode
* make the serializer an option: Data::Dumper, Storable, etc.
* Add GRID::Cluster pki to GRID::Machine
* fork: document
start, poll, wait, kill, exit_status, kill_on_destruction??
arguments to the fork subroutine?
fork is the constructor ?
* Documentation:
GRID::Machine::Process
'around' parameter in sub: make a customized proxy
* Optimization: make method "subs" that will install a set of metods (alternative to 'include')
use it to install Core, RIOHandlers, etc.
* make an alias of stored subs (DONE)
*GRID::Machine::subname = \&SERVER()->{stored_procedures}{subname}{sub}
We need some sort of namespaces.!!!! (NOT DONE)
* Set filter in sub wait
* Add to "sub include" the parsing of attributes as:
- "filter" Filter output
- compute line number, set it in sub call
- transfer file if debugging
- "context" (send the context scalar/list to the remote sub
* a handler for CTRL-C that removes the temporary files and kills the remote
* GRID::Machine::RemoteSub
other attributes: source file, source package, source line, etc
* make test with transfer2.pl when the module does not exist!!
* document overloading of bool
* en el new de REMOTE estoy añadiendo reportfile
para tener un autentico fichero de log
( run in 1.477 second using v1.01-cache-2.11-cpan-39bf76dae61 )