zmq¶
Definition of ZeroMQ sockets and messages.
Providers¶
-
is_zmq_slave
¶ File :
zmq/utils.irp.f
logical :: is_zmq_slave
If
true
, the current process is a ZeroMQ slave.
-
qp_run_address
¶ File :
zmq/utils.irp.f
character*(128) :: qp_run_address integer :: zmq_port_start
Address of the qp_run socket Example : tcp://130.120.229.139:12345
Needed by:
-
zmq_context
¶ File :
zmq/utils.irp.f
integer(ZMQ_PTR) :: zmq_context integer(omp_lock_kind) :: zmq_lock
Context for the ZeroMQ library
Needed by:
-
zmq_lock
¶ File :
zmq/utils.irp.f
integer(ZMQ_PTR) :: zmq_context integer(omp_lock_kind) :: zmq_lock
Context for the ZeroMQ library
Needed by:
-
zmq_port_start
¶ File :
zmq/utils.irp.f
character*(128) :: qp_run_address integer :: zmq_port_start
Address of the qp_run socket Example : tcp://130.120.229.139:12345
Needed by:
-
zmq_socket_pair_inproc_address
¶ File :
zmq/utils.irp.f
character*(128) :: zmq_socket_pull_tcp_address character*(128) :: zmq_socket_pair_inproc_address character*(128) :: zmq_socket_push_tcp_address character*(128) :: zmq_socket_pull_inproc_address character*(128) :: zmq_socket_push_inproc_address character*(128) :: zmq_socket_sub_tcp_address
Socket which pulls the results (2)
Needs:
Needed by:
-
zmq_socket_pull_inproc_address
¶ File :
zmq/utils.irp.f
character*(128) :: zmq_socket_pull_tcp_address character*(128) :: zmq_socket_pair_inproc_address character*(128) :: zmq_socket_push_tcp_address character*(128) :: zmq_socket_pull_inproc_address character*(128) :: zmq_socket_push_inproc_address character*(128) :: zmq_socket_sub_tcp_address
Socket which pulls the results (2)
Needs:
Needed by:
-
zmq_socket_pull_tcp_address
¶ File :
zmq/utils.irp.f
character*(128) :: zmq_socket_pull_tcp_address character*(128) :: zmq_socket_pair_inproc_address character*(128) :: zmq_socket_push_tcp_address character*(128) :: zmq_socket_pull_inproc_address character*(128) :: zmq_socket_push_inproc_address character*(128) :: zmq_socket_sub_tcp_address
Socket which pulls the results (2)
Needs:
Needed by:
-
zmq_socket_push_inproc_address
¶ File :
zmq/utils.irp.f
character*(128) :: zmq_socket_pull_tcp_address character*(128) :: zmq_socket_pair_inproc_address character*(128) :: zmq_socket_push_tcp_address character*(128) :: zmq_socket_pull_inproc_address character*(128) :: zmq_socket_push_inproc_address character*(128) :: zmq_socket_sub_tcp_address
Socket which pulls the results (2)
Needs:
Needed by:
-
zmq_socket_push_tcp_address
¶ File :
zmq/utils.irp.f
character*(128) :: zmq_socket_pull_tcp_address character*(128) :: zmq_socket_pair_inproc_address character*(128) :: zmq_socket_push_tcp_address character*(128) :: zmq_socket_pull_inproc_address character*(128) :: zmq_socket_push_inproc_address character*(128) :: zmq_socket_sub_tcp_address
Socket which pulls the results (2)
Needs:
Needed by:
-
zmq_socket_sub_tcp_address
¶ File :
zmq/utils.irp.f
character*(128) :: zmq_socket_pull_tcp_address character*(128) :: zmq_socket_pair_inproc_address character*(128) :: zmq_socket_push_tcp_address character*(128) :: zmq_socket_pull_inproc_address character*(128) :: zmq_socket_push_inproc_address character*(128) :: zmq_socket_sub_tcp_address
Socket which pulls the results (2)
Needs:
Needed by:
-
zmq_state
¶ File :
zmq/utils.irp.f
character*(128) :: zmq_state
Threads executing work through the ZeroMQ interface
Needed by:
Subroutines / functions¶
-
add_task_to_taskserver:
()¶ File :
zmq/utils.irp.f
integer function add_task_to_taskserver(zmq_to_qp_run_socket,task)
Get a task from the task server
Needs:
-
connect_to_taskserver:
()¶ File :
zmq/utils.irp.f
integer function connect_to_taskserver(zmq_to_qp_run_socket,worker_id,thread)
Connect to the task server and obtain the worker ID
Needs:
-
disconnect_from_taskserver:
()¶ File :
zmq/utils.irp.f
integer function disconnect_from_taskserver(zmq_to_qp_run_socket, worker_id)
Disconnect from the task server
Needs:
-
disconnect_from_taskserver_state:
()¶ File :
zmq/utils.irp.f
integer function disconnect_from_taskserver_state(zmq_to_qp_run_socket, worker_id, state)
Disconnect from the task server
Needs:
-
end_parallel_job:
()¶ File :
zmq/utils.irp.f
subroutine end_parallel_job(zmq_to_qp_run_socket,zmq_socket_pull,name_in)
End a new parallel job with name ‘name’. The slave tasks execute subroutine ‘slave’
Needs:
Called by:
h_s2_u_0_nstates_zmq()
zmq_pt2()
zmq_selection()
Calls:
end_zmq_pull_socket()
end_zmq_to_qp_run_socket()
lowercase()
omp_set_lock()
omp_unset_lock()
sleep()
-
end_zmq_pair_socket:
()¶ File :
zmq/utils.irp.f
subroutine end_zmq_pair_socket(zmq_socket_pair)
Terminate socket on which the results are sent.
Needs:
Calls:
omp_set_lock()
omp_unset_lock()
-
end_zmq_pull_socket:
()¶ File :
zmq/utils.irp.f
subroutine end_zmq_pull_socket(zmq_socket_pull)
Terminate socket on which the results are sent.
Needs:
Called by:
end_parallel_job()
Calls:
omp_set_lock()
omp_unset_lock()
-
end_zmq_push_socket:
()¶ File :
zmq/utils.irp.f
subroutine end_zmq_push_socket(zmq_socket_push,thread)
Terminate socket on which the results are sent.
Needs:
Called by:
ao_two_e_integrals_erf_in_map_slave()
ao_two_e_integrals_in_map_slave()
davidson_run_slave()
run_pt2_slave()
run_selection_slave()
Calls:
omp_set_lock()
omp_unset_lock()
-
end_zmq_sub_socket:
()¶ File :
zmq/utils.irp.f
subroutine end_zmq_sub_socket(zmq_socket_sub)
Terminate socket on which the results are sent.
Needs:
Called by:
wait_for_next_state()
wait_for_state()
wait_for_states()
Calls:
omp_set_lock()
omp_unset_lock()
-
end_zmq_to_qp_run_socket:
()¶ File :
zmq/utils.irp.f
subroutine end_zmq_to_qp_run_socket(zmq_to_qp_run_socket)
Terminate the socket from the application to qp_run
Called by:
ao_two_e_integrals_erf_in_map_collector()
ao_two_e_integrals_erf_in_map_slave()
ao_two_e_integrals_in_map_collector()
ao_two_e_integrals_in_map_slave()
davidson_run_slave()
end_parallel_job()
pt2_collector()
run_pt2_slave()
run_selection_slave()
selection_collector()
-
get_task_from_taskserver:
()¶ File :
zmq/utils.irp.f
integer function get_task_from_taskserver(zmq_to_qp_run_socket,worker_id,task_id,task)
Get a task from the task server
Needs:
-
get_tasks_from_taskserver:
()¶ File :
zmq/utils.irp.f
integer function get_tasks_from_taskserver(zmq_to_qp_run_socket,worker_id,task_id,task,n_tasks)
Get multiple tasks from the task server
Needs:
-
new_parallel_job:
()¶ File :
zmq/utils.irp.f
subroutine new_parallel_job(zmq_to_qp_run_socket,zmq_socket_pull,name_in)
Start a new parallel job with name ‘name’. The slave tasks execute subroutine ‘slave’
Needs:
Called by:
h_s2_u_0_nstates_zmq()
zmq_pt2()
zmq_selection()
Calls:
lowercase()
omp_set_lock()
omp_unset_lock()
-
new_zmq_pair_socket:
()¶ File :
zmq/utils.irp.f
function new_zmq_pair_socket(bind)
Socket on which the collector and the main communicate
Needs:
Calls:
omp_set_lock()
omp_unset_lock()
-
new_zmq_pull_socket:
()¶ File :
zmq/utils.irp.f
function new_zmq_pull_socket()
Socket on which the results are sent. If thread is 1, use inproc
Needs:
Calls:
omp_set_lock()
omp_unset_lock()
sleep()
-
new_zmq_push_socket:
()¶ File :
zmq/utils.irp.f
function new_zmq_push_socket(thread)
Socket on which the results are sent. If thread is 1, use inproc
Needs:
Calls:
omp_set_lock()
omp_unset_lock()
-
new_zmq_sub_socket:
()¶ File :
zmq/utils.irp.f
function new_zmq_sub_socket()
Socket to read the state published by the Task server
Needs:
Calls:
omp_set_lock()
omp_unset_lock()
-
new_zmq_to_qp_run_socket:
()¶ File :
zmq/utils.irp.f
function new_zmq_to_qp_run_socket()
Socket on which the qp_run process replies
Needs:
Calls:
omp_set_lock()
omp_unset_lock()
-
reset_zmq_addresses:
()¶ File :
zmq/utils.irp.f
subroutine reset_zmq_addresses
Socket which pulls the results (2)
Needs:
Called by:
switch_qp_run_to_master()
-
switch_qp_run_to_master:
()¶ File :
zmq/utils.irp.f
subroutine switch_qp_run_to_master
Address of the master qp_run socket Example : tcp://130.120.229.139:12345
Needs:
Called by:
run_slave_cipsi()
Calls:
getenv()
reset_zmq_addresses()
-
task_done_to_taskserver:
()¶ File :
zmq/utils.irp.f
integer function task_done_to_taskserver(zmq_to_qp_run_socket, worker_id, task_id)
Get a task from the task server
Needs:
-
tasks_done_to_taskserver:
()¶ File :
zmq/utils.irp.f
integer function tasks_done_to_taskserver(zmq_to_qp_run_socket, worker_id, task_id, n_tasks)
Get a task from the task server
Needs:
-
wait_for_next_state:
()¶ File :
zmq/utils.irp.f
subroutine wait_for_next_state(state)
Calls:
end_zmq_sub_socket()
-
wait_for_state:
()¶ File :
zmq/utils.irp.f
subroutine wait_for_state(state_wait,state)
Wait for the ZMQ state to be ready
Calls:
end_zmq_sub_socket()
-
wait_for_states:
()¶ File :
zmq/utils.irp.f
subroutine wait_for_states(state_wait,state,n)
Wait for the ZMQ state to be ready
Called by:
run_slave_main()
Calls:
end_zmq_sub_socket()
-
zmq_abort:
()¶ File :
zmq/utils.irp.f
integer function zmq_abort(zmq_to_qp_run_socket)
Aborts a running parallel computation
Calls:
sleep()
-
zmq_delete_task:
()¶ File :
zmq/utils.irp.f
integer function zmq_delete_task(zmq_to_qp_run_socket,zmq_socket_pull,task_id,more)
When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull.
Needs:
-
zmq_delete_tasks:
()¶ File :
zmq/utils.irp.f
integer function zmq_delete_tasks(zmq_to_qp_run_socket,zmq_socket_pull,task_id,n_tasks,more)
When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull.
Needs:
-
zmq_delete_tasks_async_recv:
()¶ File :
zmq/utils.irp.f
integer function zmq_delete_tasks_async_recv(zmq_to_qp_run_socket,zmq_socket_pull,task_id,n_tasks,more)
When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull.
-
zmq_delete_tasks_async_send:
()¶ File :
zmq/utils.irp.f
integer function zmq_delete_tasks_async_send(zmq_to_qp_run_socket,zmq_socket_pull,task_id,n_tasks,more)
When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull.
Needs:
-
zmq_get8_dvector:
()¶ File :
zmq/put_get.irp.f
integer function zmq_get8_dvector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
Get a float vector from the qp_run scheduler
Needs:
-
zmq_get8_ivector:
()¶ File :
zmq/put_get.irp.f
integer function zmq_get8_ivector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
Get a vector of integers from the qp_run scheduler
Needs:
-
zmq_get_dmatrix:
()¶ File :
zmq/put_get.irp.f
integer function zmq_get_dmatrix(zmq_to_qp_run_socket, worker_id, name, x, size_x1, size_x2, sze)
Get a float vector from the qp_run scheduler
Needs:
-
zmq_get_dvector:
()¶ File :
zmq/put_get.irp.f
integer function zmq_get_dvector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
Get a float vector from the qp_run scheduler
Needs:
-
zmq_get_i8matrix:
()¶ File :
zmq/put_get.irp.f
integer function zmq_get_i8matrix(zmq_to_qp_run_socket, worker_id, name, x, size_x1, size_x2, sze)
Get a float vector from the qp_run scheduler
Needs:
-
zmq_get_imatrix:
()¶ File :
zmq/put_get.irp.f
integer function zmq_get_imatrix(zmq_to_qp_run_socket, worker_id, name, x, size_x1, size_x2, sze)
Get a float vector from the qp_run scheduler
Needs:
-
zmq_get_int:
()¶ File :
zmq/put_get.irp.f
integer function zmq_get_int(zmq_to_qp_run_socket, worker_id, name, x)
Get a vector of integers from the qp_run scheduler
Needs:
-
zmq_get_int_nompi:
()¶ File :
zmq/put_get.irp.f
integer function zmq_get_int_nompi(zmq_to_qp_run_socket, worker_id, name, x)
Get a vector of integers from the qp_run scheduler
Needs:
-
zmq_get_ivector:
()¶ File :
zmq/put_get.irp.f
integer function zmq_get_ivector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
Get a vector of integers from the qp_run scheduler
Needs:
-
zmq_port:
()¶ File :
zmq/utils.irp.f
function zmq_port(ishift)
Return the value of the ZMQ port from the corresponding integer
Needs:
-
zmq_put8_dvector:
()¶ File :
zmq/put_get.irp.f
integer function zmq_put8_dvector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
Put a float vector on the qp_run scheduler
Needs:
-
zmq_put8_ivector:
()¶ File :
zmq/put_get.irp.f
integer function zmq_put8_ivector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
Put a vector of integers on the qp_run scheduler
Needs:
-
zmq_put_dmatrix:
()¶ File :
zmq/put_get.irp.f
integer function zmq_put_dmatrix(zmq_to_qp_run_socket, worker_id, name, x, size_x1, size_x2, sze)
Put a float vector on the qp_run scheduler
Needs:
-
zmq_put_dvector:
()¶ File :
zmq/put_get.irp.f
integer function zmq_put_dvector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
Put a float vector on the qp_run scheduler
Needs:
-
zmq_put_i8matrix:
()¶ File :
zmq/put_get.irp.f
integer function zmq_put_i8matrix(zmq_to_qp_run_socket, worker_id, name, x, size_x1, size_x2, sze)
Put a float vector on the qp_run scheduler
Needs:
-
zmq_put_imatrix:
()¶ File :
zmq/put_get.irp.f
integer function zmq_put_imatrix(zmq_to_qp_run_socket, worker_id, name, x, size_x1, size_x2, sze)
Put a float vector on the qp_run scheduler
Needs:
-
zmq_put_int:
()¶ File :
zmq/put_get.irp.f
integer function zmq_put_int(zmq_to_qp_run_socket, worker_id, name, x)
Put a vector of integers on the qp_run scheduler
Needs:
-
zmq_put_ivector:
()¶ File :
zmq/put_get.irp.f
integer function zmq_put_ivector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
Put a vector of integers on the qp_run scheduler
Needs:
-
zmq_set_running:
()¶ File :
zmq/utils.irp.f
integer function zmq_set_running(zmq_to_qp_run_socket)
Set the job to Running in QP-run