{"id":951,"date":"2007-08-13T05:10:03","date_gmt":"2007-08-13T05:10:03","guid":{"rendered":"http:\/\/www.amibroker.org\/userkb\/2007\/08\/13\/951\/"},"modified":"2012-08-17T11:03:49","modified_gmt":"2012-08-17T11:03:49","slug":"951","status":"publish","type":"post","link":"http:\/\/www.amibroker.org\/editable_userkb\/2007\/08\/13\/951\/","title":{"rendered":"IO – Distributed Processing"},"content":{"rendered":"
This page is obsolete. Current versions of AmiBroker feature built-in non-exhaustive, smart multithreaded optimizer and walk-forward engine.<\/font><\/b><\/p>\n <\/a><\/a>For the purposes of running distributed processing with IO<\/em>, an IO<\/em> server need be nothing more than another Windows 2000 or above machine on the same local area network.\u00a0 Hereinafter the machine actually running IO<\/em> will be referred to as the Client and all other machines as Servers to the Client.\u00a0 This is sort of bass ackwards in terms of how one normally thinks of a Client \/ Server relationship where one Server typically serves the needs of many potential Clients.\u00a0 Here we will have potentially many Servers at the beck and call of one Client i.e. the one running IO<\/em>.<\/p>\n As can be seen from the chart of relative run times below, for a relatively fast single tradable\u00a0system, optimizations of the same system on zero to nine additional machines result in\u00a0huge gains in productivity\u00a0by utilizing additional machines.\u00a0 Results will be even larger when processing Watch Lists as the amount of overhead drops relative to the amount of time required to process an optimization generation.<\/p>\n <\/a><\/p>\n In general IO<\/em> uses\u00a0Windows sockets for all\u00a0communication between the Client and Servers where a small IO<\/em>Server program runs awaiting orders from the client, but will also use shared disk to move large\u00a0amounts of data like symbol databases at the beginning of new runs.\u00a0 The setup is very simple and can be performed by anyone who knows nothing more about networking then how to connect two machines through a router or switch.\u00a0 Below is a block diagram of the typical setup and interaction: IO<\/em> also handles the following potential issues:<\/p>\n \u00a0\u00a0\u00a0 –\u00a0\u00a0\u00a0\u00a0 Different\u00a0Machine \/ CPU speeds are\u00a0dealt with by a routine that will dynamically balance the load from one generation to the next between the client and servers to ensure that the most productiveity is obtained from all participating machines.\u00a0 This can be seen in the screen scrape below with the Servers ( Work Flow ) window open showing the load allocation by machine and relative optimization times.<\/p>\n
\n<\/a><\/p>\n