Anybody using Quad Core Machine for testing

Discussions about the testing and simulation of mechanical trading systems using historical data and other methods. Trading Blox Customers should post Trading Blox specific questions in the Customer Support forum.
ratio
Roundtable Knight
Roundtable Knight
Posts: 338
Joined: Sun Jan 15, 2006 11:07 pm
Location: Montreal, Canada

Anybody using Quad Core Machine for testing

Post by ratio » Thu Jan 18, 2007 8:40 am

I am currently using a Dual Core Pentium D930, with 2 Gig Ram and 400 Gig Harddrive.

I am seriously thinking to upgrade to the a Quad Core machine. If someone had experimented with it, Does it really give you a boost in processing time?

Denis

Tim Arnold
Site Admin
Site Admin
Posts: 8536
Joined: Tue Apr 06, 2004 1:41 pm
Location: Boston, MA
Contact:

Post by Tim Arnold » Thu Jan 18, 2007 9:17 am

Denis,

Unless the application you are using is multi-threaded, ie it can use the multiple processors at the same time, you will not see a speed increase on a per application basis.

You will be able to run multiple applications at the same time more easily, but each application will run at the same speed as a single processer machine.

You are probably familiar with this effect already since you have a dual core. I do as well, and have done many speed tests between a single processer machine and a dual core machine, and there is no increase in speed for any of the applications that I run.

Like you, I would as well like to hear from anyone that has a quad-core machine to get some first hand knowledge.

ratio
Roundtable Knight
Roundtable Knight
Posts: 338
Joined: Sun Jan 15, 2006 11:07 pm
Location: Montreal, Canada

Post by ratio » Thu Jan 18, 2007 9:48 am

Well from what I understand in Intel documentation, this is just a way (THe QUad COre) to boost the processing speed, it is not a Quad independant CPU.

Also when I look on my DUal COre PC, on the CPU performance Graph, I clearly see that both CPU are use when I do a back testing.

I guess we should expect some performance improvement on those quad core.

One way I used to boost performance, is to change the tradingblox process priority to HIgh for large test. It save some time, but dont try to use your pc for something else during that time.

Denis

ratio
Roundtable Knight
Roundtable Knight
Posts: 338
Joined: Sun Jan 15, 2006 11:07 pm
Location: Montreal, Canada

Post by ratio » Sat Jan 20, 2007 3:37 pm

interesting benchmark on Quad core test.

I think that this could multiply by a factor of 2 - 4 the speed of testing, even without anything else.

Just pure additionnal processing power.

http://www.tomshardware.com/2006/09/10/ ... age11.html

Denis

mc
Roundtable Knight
Roundtable Knight
Posts: 167
Joined: Fri Nov 10, 2006 3:32 am

Post by mc » Sun Jan 21, 2007 5:25 pm

Just a thought - can anything be done on the compiler side (32 or 64-bit) to introduce multi-threading in Trading Blox, especially any easy changes?

Forum Mgmnt
Roundtable Knight
Roundtable Knight
Posts: 1842
Joined: Tue Apr 15, 2003 11:02 am
Contact:

Post by Forum Mgmnt » Sun Jan 21, 2007 5:45 pm

Historical simulation can benefit greatly from multi-threading and multiple processor cores since each core could work on a single test in a multi-test simulation.

For the next version of the product, version 2.2, we are targeting improvements which are especially important for stock trading. Since stock portfolios are much larger than futures portfolios speed is much more important as are the memory requirements. Multi-threading support and 64-bit support are the two large architectural issues which we hope to address in version 2.2. These both should make it much easier to test large stock portfolios.

Unfortunately, enabling mutli-threading is not as simple as just turning on a compiler switch. Those switches are already turned on since Trading Blox has always used more than one thread. The User Interfance has always run in a separate thread from the tests. This is how the debugger breakpoints work. When the debugger comes up the test thread is paused.

The issue for multi-threading in the simulation itself is that we need to have separate copies of all the variables, IPV variables etc. for each thread. We also need to be able to handle the results which may come back out of order etc. The good news is that while we are implementing the ability to deal with tests coming back out of order we can also start to present results as they come in since this is all in the same area of the code. This will allow one to see these results early so one can stop a test that may not be doing what you had intended.

We are working on making the 2.2 version of the product support multi-threading, this should make Trading Blox about 3 to 4 times faster for quad-core machines. There is a fair amount of work to do to get this to work and even more testing required. We can't commit on a timeframe or even that this feature will make the release for 2.2 until we get further along and have a stable version that we are comfortable shipping to our customers.

- Forum Mgmnt

ratio
Roundtable Knight
Roundtable Knight
Posts: 338
Joined: Sun Jan 15, 2006 11:07 pm
Location: Montreal, Canada

Post by ratio » Sun Jan 21, 2007 7:41 pm

When I had my software company, The processor speed was incrementing faster than we could potentially keep up in trying to make our software faster.

You can maybe, increment the speed of the software by 30%, but the cost in producing it and the potential increase in price to justify the man work hour do to it, is often much more than the actual cost of upgrading your machine, in the same time frame.

We where producing real time call centre software that had to handle thousand of calls per hour with multiple agent, all of this multi threaded and multi everything

But for the market place we where better off spending time introducing great new feature than trying to decrease processing time.

Intel is doing a really good job at this. Moore Law: processing power double every 18 month, still pretty much hold true since 1970.


http://www.intel.com/technology/mooreslaw/index.htm

Denis

Imperium
Roundtable Fellow
Roundtable Fellow
Posts: 52
Joined: Tue May 17, 2005 1:04 pm
Location: London

Post by Imperium » Thu Jan 25, 2007 11:21 am

I find that my HDD runs way slower than my dualcore (T7600) and so creates a huge bottleneck. A quad core would make sod-all difference on my machine for this reason.

I'd strongly advise a RAID0 HDD setup if you're using multi-cores.

edb
Roundtable Knight
Roundtable Knight
Posts: 457
Joined: Wed Jul 09, 2003 3:31 pm

Post by edb » Fri Jan 26, 2007 6:02 pm

Imperium wrote:I find that my HDD runs way slower than my dualcore (T7600) and so creates a huge bottleneck.
I tried a faster HD when I built my Pentium D 820 last year. Western Digital Raptor 10,000 RPM SATA 1.5 Gb/s hard drive (74 GB capacity). I guess the faster spin (10,000 RPM) and data flow (SATA 1.5 Gb/s) are the key.
Would be interesting to try it with QX6700 or X6800.

-edb

mc
Roundtable Knight
Roundtable Knight
Posts: 167
Joined: Fri Nov 10, 2006 3:32 am

Post by mc » Mon Feb 12, 2007 7:25 am

It is thrilling to hear that a future release of Trading Blox will support multiple cores and 64-bit processing.

Here is an IT industry article about multiple cores which could be of interest to readers of this thread:
http://www.businessweek.com/technology/ ... ries_ssi_5

It also mentions the software challenges of developing multi-threaded applications and that at the same time the industry is heading towards "n-core" chips (2,4,8...). Exciting news for backtesters.

Forum Mgmnt
Roundtable Knight
Roundtable Knight
Posts: 1842
Joined: Tue Apr 15, 2003 11:02 am
Contact:

Post by Forum Mgmnt » Mon Feb 12, 2007 5:29 pm

The major issue with software that can take advantage of multiple processors is that many tasks are not easily divisible.

For example, take a test of a system over 10 years of data on 5,000 stocks. One might imagine that you could divide the test into 10 parts one for each year of the test. However, this won't work when the test is dependent on the equity values of the prior year. The simulation needs to process each year in order.

Likewise one can't split up the 5,000 stocks since each of the stocks may or not trade depending on a portfolio selection algorithm which needs to examine all 5,000 at a time.

So a single test cannot be easily divided without placing significant restrictions on funcitonality of the tests which would be too restrictive. It would eliminate the ability to perform sophisticated money management or portfolio selection, or both.

Fortunately, single tests using a system like Trading Blox are adequately fast already. It is only when one is processing a large number of tests as part of an optimization that speed becomes desirable. Running a 10,000 test simulation with 5,000 stocks over 30 years of data will take a while even with Trading Blox.

The good news for Trading Blox customers is that each of the tests themselves is entirely independent. Therefore each of them can be run on a separate processor core in a separate thread without restricting the functionality in any way.

The only difficulty is the requirement to keep the memory and variables separate for each of the systems and to keep memory use low by not duplicating large data structures used for stock data for each thread. This is the portion of the multi-threading which we are currently addressing. Customers which would most like to have the speed improvements afforded by multiple cores are also those who have the greatest memory requirements, i.e. customers testing large numbers of stocks over many years of data. This means that speed and memory use must be addressed at the same time if we are to successfully meet the needs of these important customers.

Thankfully, the 64-bit operating systems combined with the multi-core processors allow us to have both enhanced speed along with more room for memory usage. We need to be careful but the core computing technology is present to allow multiple tests of this sort using multiple cores.
Imperium wrote:I find that my HDD runs way slower than my dualcore (T7600) and so creates a huge bottleneck.
One of the reasons that Trading Blox is so fast is that we have tried to all but eliminate the need to access the disk when doing testing. Hard disks still can only handle hundreds of accesses per second while processors can perform billions of operations per second.

The differential between disk speed and processor speed has been increasing at about half the rate of Moores law. Software that does not take this into account (like Windows for example) has not been getting faster at the rate that it should. This is one of the reasons Windows boots slower on my current machine that it did 10 years ago.

- Forum Mgmnt

TEH
Full Member
Full Member
Posts: 11
Joined: Sun Jun 01, 2003 6:12 pm
Location: New York

Post by TEH » Wed Feb 14, 2007 1:54 am

I primarily use TB for stock portfolio testing and find that it's relatively "fast" to test 5,000 stocks over 20+ years, but it still takes quite a long time and is a major system drain. At what point is a system's memory superfluous with the current release of TB (I have 3GB)? I understand that a 32 bit program can only utilize 2GB of memory with a single program. With the 2.2 release using 64 bit architecture what amount of memory can be utilized for testing and at what level of processor speed will the most improvement be seen. Thanks in advance for thoughts and clarification.

Tim Arnold
Site Admin
Site Admin
Posts: 8536
Joined: Tue Apr 06, 2004 1:41 pm
Location: Boston, MA
Contact:

Post by Tim Arnold » Wed Feb 14, 2007 7:04 am

Hi TEH,

The max usable memory for the 32 bit version of Trading Blox 2.1 is 2GB. So if your computer has 3GB that is probably the max you need, leaving space for windows and other applications.

The max usable memory for the 64 bit version of Trading Blox is limited only by the hardware. Generally greater than 16GB, so that's good news for large stock tests. We currently run tests with 6GB of memory available to Trading Blox using the 64 bit version.

The 2.1 version of Trading Blox does not take full advantage of multiple processors, so the best CPU for speed is the one with the fastest GHZ. When the multi-threaded version of Trading Blox is available (possibily 2.2 or 2.3) then the best computer will be a multi core or multi CPU machine.

http://en.wikipedia.org/wiki/64-bit

Hope that helps,

Tim

ratio
Roundtable Knight
Roundtable Knight
Posts: 338
Joined: Sun Jan 15, 2006 11:07 pm
Location: Montreal, Canada

Post by ratio » Wed Feb 14, 2007 8:38 am

But do we need to install Win XP 64 ?

Forum Mgmnt
Roundtable Knight
Roundtable Knight
Posts: 1842
Joined: Tue Apr 15, 2003 11:02 am
Contact:

Post by Forum Mgmnt » Wed Feb 14, 2007 9:20 am

You will need to install 64-bit XP to get access to more memory than the normal 2 Gig limit but not to run multi-threading when that becomes available. If you are testing large stock portfolios you will probably want to use 64-bit XP but if you are not then the 32-bit version will be fine.

There may be a slight performance advantage running under 64-bit versus 32-bit but this will be no where near the performance advantage that multi-core processors will afford once the multi-threaded version of Trading Blox is available.

- Forum Mgmnt

TEH
Full Member
Full Member
Posts: 11
Joined: Sun Jun 01, 2003 6:12 pm
Location: New York

Post by TEH » Wed Feb 14, 2007 10:04 am

Thanks Tim.

Is the 64 bit version currently available for download?

Tim Arnold
Site Admin
Site Admin
Posts: 8536
Joined: Tue Apr 06, 2004 1:41 pm
Location: Boston, MA
Contact:

Post by Tim Arnold » Wed Feb 14, 2007 10:21 am

Yes, Trading Blox 2.1 is available in 64 bit beta. PM me if you have a 64 bit machine and would like to try it out.

Chelonia
Roundtable Knight
Roundtable Knight
Posts: 497
Joined: Mon Apr 30, 2007 3:37 pm

Post by Chelonia » Sat Jun 16, 2007 5:21 pm

I can tell you that testing is alot faster on a Q6700 Quadcore/64bit Vista machine, but then i'm only testing futures so for me the difference in speed is not that important, but gaming is a blast while waiting between new orders!!!

Roger Rines
Roundtable Knight
Roundtable Knight
Posts: 1946
Joined: Wed Oct 06, 2004 10:52 am
Location: San Jose, CA

Post by Roger Rines » Thu Jun 28, 2007 1:48 pm

I'm running a Win XP PRO SP-2 with two 3.2 Ghz XEON CPUs that have Hyper-Threading enabled on this ASUS machine. During a recent test with the Windows Task Manager's Performance tab showing the computer's CPU usage graphics, version 2.2.1 isn't loading all the available CPU capability of this machine. This indicates a QUAD core will probably see a similar loading and performance curve with this version of the software.

From the time just before this software is started to the period during and then after the test, the Thread count only increases from 538 to 543 and then back to 538. With that said, having more CPUs installed does help you do other things while a test is running. In fact I don't see any slow down in doing other things during a test.
Attachments
R9_CPU_Usage_TBB_Test.png
Task Manager CPU Usage
R9_CPU_Usage_TBB_Test.png (8.48 KiB) Viewed 13538 times

Rush
Roundtable Fellow
Roundtable Fellow
Posts: 50
Joined: Wed Dec 31, 1969 7:00 pm

testing large database of stocks

Post by Rush » Wed Jan 16, 2008 3:55 pm

I am trying to backtest my system on 15,000 ca. USA stocks over 40 years using daily OHLCV data, Divs and Stock Splits adjusted.

I am using Intel Quad 6600, 3GB, Asus P5, 500MB HD.

While on 3,500 stocks (NYSE only) everything is fine, on the full database I experience the following error message: "Error! Out of memory to create series..."

Is anyway to go around it? Am i doing anything wrong? Should I move to a workstation setup?
Which are the Hardware requirements do handle such a large dataset?

Post Reply