;==========================================================================
; hxGrid Coordinator settings
;==========================================================================

[coordinator]

;select particular IP address to listen in case of multiple interfaces
;comment to listen on all interfaces
;bind_ip=192.168.0.2

;port to listen
;comment to use default 4100
;bind_port=4100

;listen for broadcast port
;default is 4105
;broadcast_port=4105

;ip address of coordinator
;No need to edit this. Agent/user will broadcast LAN,
;find coordinator IP and store it here.
coordinator_ip=192.168.0.2

;Enable debug output
;default is 0
enableDebugOutput=1


;==========================================================================
; hxGrid Agent settings
;==========================================================================

[agent]

;select particular IP address to listen in case of multiple interfaces
;comment to listen on all interfaces
;bind_ip=192.168.0.2

;port to listen
;comment to use default 4102
;bind_port=4102

;listen for broadcast port
;default is 4104
;broadcast_port=4104

;count HyperThreading thread as separate CPU
;default is 1
;useHT=1

;assign pool threads for each cpu explicitly
;or allow to migrate from CPU to CPU
;default is 1
;explicitCPU=1

;leave N CPUs free (not used by agent)
;agent will use [N..CPUCount-1] CPUs
;(but not less then 1) 
;so first N will be free
;default is 0
;freeCPUCount=0

;max data cache size on agent
;default is 100000 bytes
;maxDataCacheSize=100000

;suspend agent for suspend_timeout if there is no free CPU time (<10%) for 10 seconds
;this allows agent to be as transparent as possible
;default is 30 seconds
;minimum is 10 seconds
;0 - off
;suspend_timeout=30

;Enable debug output
;default is 0
enableDebugOutput=1


;==========================================================================
; hxGrid User settings
;==========================================================================

[user]

;User port for requesting additional data for tasks (DLLs, GetData())
;
;default is 4103
;data_port=4103

;listen for broadcast port
;default is 4106
;broadcast_port=4106

;maximum number of tasks, allowed to be sent to agent,
;without waiting for completion of curent task

;used to "hide" network transfer time

;recommened value for long tasks (transfer time << run task) is 1
;
;recommended value for shorts tasks (transfer time*~0.5 ==  run time) is 10
;
;default is 1
;maxSendAheadTasks=1

;maximum number of tasks, buffered by IGridUser,
;before RunTask() method will block until at least one task is completed
;
;larger values are commended if task formation time is significant
;
;value of 1 can be used for debugging
;
;default is 500
;maxQueqedTasks=500

;memory limit for tasks queqe of IGridUSer
;(summ of inoutStream lengths)
;queue length is limited by number of tasks (maxQueqedTasks) and this memory limit
;
;default is max( physicalMemory/8, 100Mb )
;userMaxMemoryUsage=50000000

;do not send tasks to agent, if it has not enought free physical memory
;
;default is 50Mb
;agentMinFreeMemory=50000000

;do not send task to agent, if it has less free physical memory then (task stream size)*Factor
;
;default is 1.5x
;agentMinFreeMemoryFactor=1.5

;send dublicate tasks to free agent 
;
;this allows not to wait for slow agent
;
;default is 1 (enabled)
;sendDublicateTasks=1

;if stream size if larger then this value, library will compress it before sending.
;compression speed is about 10-20 MB/sec - this will speedup network transfer significanly 
;on 100MBit and slower networks
;aslo lowers memory usage, since tasks streams are kept compressed until task is run
;
;default is 65K
;compressThreshold=500000000

;swap tasks from queqe to disk if userMaxMemoryUsage reached.
;allows to queque more huge tasks(stream size 100Mb and large)
;
;default is 1 (enabled)
;allowSwapping=1

;Enable debug output
;default is 0
enableDebugOutput=1

;suspend sending tasks to agent if it failed last task, ms
;default is 10000
;if agent has failed task for some reason, we better suspend sending 
;tasks to it; let other agents do the job
;failed_agent_suspend_timeout=10000
