GRID-Machine

 view release on metacpan or  search on metacpan

TODO  view on Meta::CPAN

* 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 )