I have cast my vote on this thread, because I’m also very interested in this topic and would like to know if there are any useful tips and suggestions regarding this matter. But I can’t agree with some of your statements:
First of all AmiBroker is installed on users’ computers - it is not a server based solution. But I’m not sure, what did you mean writing about the server. If this server is one of your computers, then it’s OK.
I don’t know why do you expect AmiBroker to break (even if it is strained) and you want to break it down into multiple instances to avoid that? Tomasz has just written about it’s unique design and explained why it is not a good idea…
It is probably the fastest and the lightest program of its kind on the market. If you have Professional Edition, each Analysis window can utilize up to 32 threads. So by simply running 4 Analysis windows (without any charts), you can utilize up to 128 threads! If the program breaks, it is almost always not because it is faulty (or has bugs) but the formula is faulty. I have seen many poorly written codes, which after a couple of hours or even minutes were causing a crash, because for example they were creating hundreds of thousands of static variables (without removing them) which would inevitably lead to crash of any software. Many of users blame @Tomasz for that, not their poor coding skills.
If I was to find an analogy I would say it is a situation in which someone has bought a Ferrari and now is complaining that if he reaches 300 km/h it usually ends in a crash. Can Ferrari be blamed for that? Is the car faulty (or has bugs ?) In 99% cases poor driving skills are to blame. The fact that someone can afford to buy a Ferrari, doesn’t make him a good driver. Drivers tend to think, they don’t need to improve their driving skills, because all the fancy systems onboard will take care of everything. The same applies to AmiBroker. Many users think, that if they install it on an expensive machine, they don’t need to worry about performance issues because their powerful rig will crunch everything in nanoseconds. In some cases it is true, but only to some extent. Eventually such attitude may lead to many problems and crashes. Learning coding on a powerful machine may form bad habits. Such users tend to forget about really important matters. A quote from Tomasz’s post from Another thread :
I think I know why people are so quick to assume bugs in programs. Probably because all other programs including Windows 10 itself are filled with bugs. But that is not the case for AmiBroker, as it is painstakingly crafted the ‘old’ way, when programmers were not only “coders” but had experience starting from digital TTL logic and every bit of memory and every single CPU cycle was precious.
You should read Tomasz’s article about AmiBroker’s performance:
Let me give you another example regarding the topic of this thread. A couple years ago I was scheduled to be admitted to hospital. I knew I would spend there at least one month. There were no such powerful smartphones back then, and the only way to be up-to date with the current situation (not only on the financial markets) was to have my own computer with me. Because I was told, that there is a high probability that my laptop might be stolen or broken there, I decided to buy a cheap netbook (netbook not notebook) so that it wouldn’t be a big issue if it went missing. I wouldn’t even consider buying it in other circumstances. It was ASUS Eee PC 1215B with Brazos E-350 Dual core processor (2 x 1,6 Ghz - without hyperthreading - only 2 cores and 2 threads). I bought it brand new for not more than $500. The only thing I have changed, I supplied it with 8 GB’s of RAM, installed AmiBroker and a bunch of other programs. It was a very nice looking netbook with a decent specification (for the amount of money I paid for it) :
As you can see, it is rather not the fastest machine on the market The processor is so weak, that browsing the Net was definitely not a great experience (because of flash etc.) But when it comes to AmiBroker - everything runs smoothly. I was able (and still I am able) to live stream and scan/explore all shares listed on one of the European’s stock exchange (about 1000 Symbols) on that machine , and at the same time I could have many opened charts with live quotes. One remark - I always try to do my best to optimize my code to make it light and effective. Making such live scans/explorations possible on this machine, required some effort. The limiting factor is not whether AmiBroker can handle it (it can - because you can easily scan/explore/backtest many, many thousands issues when working offline) but whether your data provider can handle it (probably he can’t).
If I was able to perform this demanding task even on E-350 Processor, imagine what can you do on the good mainstream Intel 7700k processor, which is even 17 times faster !!! than Brazos, according to multicore UserBenchmark: http://cpu.userbenchmark.com/Compare/AMD-E-350-vs-Intel-Core-i7-7700K/m5356vs3647
Now think what can you achieve if you have your AmiBroker installed on a system equipped with a high end processor like Intel 6950x. This CPU might be even 36 times faster !!! than E-350 in multithreading environment: http://cpu.userbenchmark.com/Compare/AMD-E-350-vs-Intel-Core-i7-6950X/m5356vs3604 If you pair it with lots of RAM and fast SSD drives you get really insane crunching power…
If someone asked me, what has changed since the time I was using Brazos, can I still run the latest AmiBroker 6.25 on it? That would be an appropriate question in case of most other competitive products, which sometimes get the hiccups if only a couple of live charts are opened, but it is inappropriate question in case of AmiBroker. AmiBroker 6.25 not only can still be ran on Brazos (2 x 1.6 Ghz), but it’s performance is significantly better than it used to be a couple years ago. Thanks to Tomasz’s outstanding skills, each new release (in spite of being packed with new features) is getting faster and faster.
Summing up - if your formula is properly and effectively written it should run smoothly even on an average system. You don’t need 128 threads to perform live scans/explorations on 6000 stocks’ universe - believe me - I know that The only thing you should really worry about is your data provider who probably won’t enable you to do that easily.
Sorry for such a long reply, but I wanted to show you (on my example), that AmiBroker’s performance is usually the last thing to worry about