pool(3)



pool(3erl)                 Erlang Module Definition                 pool(3erl)

NAME
       pool - Load distribution facility.

DESCRIPTION
       This  module can be used to run a set of Erlang nodes as a pool of com-
       putational processors. It is organized as a master and a set  of  slave
       nodes and includes the following features:

         * The slave nodes send regular reports to the master about their cur-
           rent load.

         * Queries can be sent to the master to determine which node will have
           the least load.

       The  BIF  statistics(run_queue) is used for estimating future loads. It
       returns the length of the queue of ready to run processes in the Erlang
       runtime system.

       The  slave  nodes are started with the slave(3erl) module. This effects
       terminal I/O, file I/O, and code loading.

       If the master node fails, the entire pool exits.

EXPORTS
       attach(Node) -> already_attached | attached

              Types:

                 Node = node()

              Ensures that a pool master is running and includes Node  in  the
              pool master's pool of nodes.

       get_node() -> node()

              Returns the node with the expected lowest future load.

       get_nodes() -> [node()]

              Returns a list of the current member nodes of the pool.

       pspawn(Mod, Fun, Args) -> pid()

              Types:

                 Mod = module()
                 Fun = atom()
                 Args = [term()]

              Spawns  a  process on the pool node that is expected to have the
              lowest future load.

       pspawn_link(Mod, Fun, Args) -> pid()

              Types:

                 Mod = module()
                 Fun = atom()
                 Args = [term()]

              Spawns and links to a process on the pool node that is  expected
              to have the lowest future load.

       start(Name) -> Nodes

       start(Name, Args) -> Nodes

              Types:

                 Name = atom()
                 Args = string()
                 Nodes = [node()]

              Starts  a  new pool. The file .hosts.erlang is read to find host
              names where the pool nodes can be started;  see  section  Files.
              The startup procedure fails if the file is not found.

              The  slave nodes are started with slave:start/2,3, passing along
              Name and, if provided, Args. Name is used as the first  part  of
              the node names, Args is used to specify command-line arguments.

              Access rights must be set so that all nodes in the pool have the
              authority to access each other.

              The function is synchronous and all the nodes, and all the  sys-
              tem servers, are running when it returns a value.

       stop() -> stopped

              Stops the pool and kills all the slave nodes.

FILES
       .hosts.erlang is used to pick hosts where nodes can be started. For in-
       formation   about   format   and   location   of   this    file,    see
       net_adm:host_file/0.

       $HOME/.erlang.slave.out.HOST  is  used  for all extra I/O that can come
       from the slave nodes on standard I/O. If the startup procedure does not
       work, this file can indicate the reason.

Ericsson AB                       stdlib 3.13                       pool(3erl)

Man(1) output converted with man2html
list of all man pages