tem_open_distconf Subroutine

public subroutine tem_open_distconf(L, fileName, proc)

Read a Lua file on the first process and distribute it to all.

This is a drop in replacement for open_config_file from Aotus and allows the scalable processing of Lua files, as they are read by a single process and then streamed to all in proc. There should be no restrictions on the Lua scripts themselves in this method, as it uses an overloading of the require mechanism in Lua itself to replace the file searches by lookups of buffered Lua code snippets. The execution of the Lua script itself is not changed.

Arguments

TypeIntentOptionalAttributesName
type(flu_State) :: L
character(len=*), intent(in) :: fileName
type(tem_comm_env_type), intent(in) :: proc

Process description to use.


Calls

proc~~tem_open_distconf~~CallsGraph proc~tem_open_distconf tem_open_distconf proc~tem_require_rq_store tem_require_rq_store proc~tem_open_distconf->proc~tem_require_rq_store proc~tem_pop_from_track_rq tem_pop_from_track_rq proc~tem_open_distconf->proc~tem_pop_from_track_rq proc~tem_require_track_rq tem_require_track_rq proc~tem_open_distconf->proc~tem_require_track_rq proc~open_config_buffer open_config_buffer proc~tem_open_distconf->proc~open_config_buffer mpi_bcast mpi_bcast proc~tem_open_distconf->mpi_bcast proc~open_config_file open_config_file proc~tem_open_distconf->proc~open_config_file proc~flu_free_cbuf flu_free_cbuf proc~tem_open_distconf->proc~flu_free_cbuf proc~tem_push_to_rq_store tem_push_to_rq_store proc~tem_open_distconf->proc~tem_push_to_rq_store proc~tem_get_required_lua tem_get_required_Lua proc~tem_open_distconf->proc~tem_get_required_lua proc~open_config_chunk open_config_chunk proc~tem_require_rq_store->proc~open_config_chunk proc~aot_table_push aot_table_push proc~tem_pop_from_track_rq->proc~aot_table_push proc~flu_pushnil flu_pushnil proc~tem_pop_from_track_rq->proc~flu_pushnil proc~flu_pop flu_pop proc~tem_pop_from_track_rq->proc~flu_pop interface~flu_dump flu_dump proc~tem_pop_from_track_rq->interface~flu_dump proc~aot_table_open aot_table_open proc~tem_pop_from_track_rq->proc~aot_table_open proc~aot_table_close aot_table_close proc~tem_pop_from_track_rq->proc~aot_table_close proc~aot_table_set_top aot_table_set_top proc~tem_pop_from_track_rq->proc~aot_table_set_top proc~tem_require_track_rq->proc~open_config_chunk interface~aot_table_set_val aot_table_set_val proc~tem_push_to_rq_store->interface~aot_table_set_val proc~tem_push_to_rq_store->proc~aot_table_open proc~tem_push_to_rq_store->proc~aot_table_close proc~tem_push_to_rq_store->proc~aot_table_set_top proc~flul_loadbuffer fluL_loadbuffer proc~tem_push_to_rq_store->proc~flul_loadbuffer interface~aot_get_val~2 aot_get_val proc~tem_get_required_lua->interface~aot_get_val~2 proc~tem_get_required_lua->proc~aot_table_open proc~tem_get_required_lua->proc~aot_table_close

Called by

proc~~tem_open_distconf~~CalledByGraph proc~tem_open_distconf tem_open_distconf proc~tem_restart_readheader tem_restart_readHeader proc~tem_restart_readheader->proc~tem_open_distconf proc~tem_load_restart tem_load_restart proc~tem_load_restart->proc~tem_restart_readheader

Contents


Variables

TypeVisibilityAttributesNameInitial
type(cbuf_type), private :: scriptbuf
type(cbuf_type), private :: modbuf
integer, private :: iError
integer, private :: comm
integer, private :: nProcs
integer, private :: nFiles
integer, private :: bufsize
integer, private :: iFile
character(len=labelLen), private, allocatable:: req_label(:)
character(len=pathLen), private, allocatable:: req_file(:)