Having Issue with NxCore C++ Program ran with WINE

Oh it does not exist? I am flabbergasted, unbelievable that the data vendor crowd is not sufficiently catering to Linux. I would have never believed it if you had not mentioned it...but I find it extremely funny that you rather kill each and every last latency advantage that a pure Linux implementation would have as well as a faster alternative on Windows, only, but decided to "stream" data between Win and Linux boxes just so that you stay true to your Linux mantra. Respect for living up to your convictions, even if it is objectively not logical at all.

I have made that decision. ....the data feed handler runs on windows....everything elese is on linux. They communicate through sockets. Its not ideal, id rather it all runs linux and uses shared memory, but a reasonably priced data feed of NxCore quality does not exist for linux. Many NxCore users run under WINE. Im not doing anything crazy in that regard, and there is little to no performance overhead. You seem to be hell bent on criticizing me, which is fine, but you are completely misrepresenting what im doing.
 
Ha, wait, you are saying that running a data feed, handler that was DESIGNED to run on Windows OS, on a Windows machine is more prone to errors than running a "customized" version through Wine on Linux? Is that what you are saying? Well, then I recommend to talk to some teenagers who apparently better understand how to turn off automatic updates on Windows machines. Obviously there is no reason why a data feed handler that was written and designed to run on Windows should be slower or suffer from more issues than running it on Linux. That singles out the problem that you have obvious problems with running a Windows instance. Try Windows 7 if Windows 8 is too tough for you to handle (admittedly I do not like Windows 8 either and run all my production code on Windows Server machines). Some people just love to make life harder for themselves, maybe it kills the boredom, but that is just my guess...

I've been running NxCore for years under Linux in full production; I just rebooted a server that ran NxCore uninterrupted since December 2013 (the reboot was precautionary and had nothing to do with Linux or NxCore). That's a single, uninterrupted NxCore process, running on Wine, nonstop for over 7 months without so much as a hiccup. The SIP itself (and even the exchanges) have had more outages than I've had running NxCore on Linux in the past two years.

In my experience, NxCore running under Wine on Linux is far more reliable than Windows 8 itself, unless you're running some stripped-down server version (which I've never done).

That's not to say that there isn't some initial coding/configuration overhead in setting up a mixed-OS system, which obviously there is. But the tools for this are so much better now that it's not a big issue anymore (for me, at least).

By the way, you do not need .Net to run or interface with NxCore (and hence, if running under Wine, no need for mono, which I've never used).
 
Dude, go away. You are doing nothing but trolling. Let the grownups talk amongst themselves.

Ha, wait, you are saying that running a data feed, handler that was DESIGNED to run on Windows OS, on a Windows machine is more prone to errors than running a "customized" version through Wine on Linux? Is that what you are saying? Well, then I recommend to talk to some teenagers who apparently better understand how to turn off automatic updates on Windows machines. Obviously there is no reason why a data feed handler that was written and designed to run on Windows should be slower or suffer from more issues than running it on Linux. That singles out the problem that you have obvious problems with running a Windows instance. Try Windows 7 if Windows 8 is too tough for you to handle (admittedly I do not like Windows 8 either and run all my production code on Windows Server machines). Some people just love to make life harder for themselves, maybe it kills the boredom, but that is just my guess...
 
An excellent question, because it is totally ridiculous to kill all the latency advantage by running a relatively high frequency data feed handler on Wine and even worse to run the data feed handler on a different machine than the algorithms. Typical behavior of some IT folks who have their heads stuck in the sand and can hardly see the big picture.

Can I ask what are you guys doing that requires NXCore ?

Start arbing stocks ? pair trading ?

Order book trading ?
 
You mean the grownups who were drowned in Linux water when they were baptized? You make a total fool out of yourself by running data into a Windows machine and then "re-route" to a Linux box. The latency you kill with that makes it completely and utterly useless to harness a hft data feed. Moron!!!


Dude, go away. You are doing nothing but trolling. Let the grownups talk amongst themselves.
 
Do you really think that NxCore is a "hft data feed"? Do u really think that the microseconds it takes for my quote software running with WINE to pass data to my trading platform (which is on the same machine on a different thread....) is even on the same order of magnitude as the time it takes for the data to travel from CME to Nanex to me, than from my trading platform to IB.... and than back to CME ? And Im the one making a fool of myself?

You mean the grownups who were drowned in Linux water when they were baptized? You make a total fool out of yourself by running data into a Windows machine and then "re-route" to a Linux box. The latency you kill with that makes it completely and utterly useless to harness a hft data feed. Moron!!!
 
I've used lots of distros and there seems little difference from my point of view. I have used many versions of Wine as well, and I don't think I actually had many problems even when the version was less than 1.0, although things did improve with higher version numbers, becoming pretty much flawless as the version hit about 1.5 and higher.

I use wineg++ to compile the code that involves Wine.

As far as the IPC we use is concerned, I won't say too much about that publicly, other than that I've used everything under the sun (almost). But I can share one thing I've learned with heavy trading data feeds (not specific to NxCore): if things are getting choked, it often pays to increase cache/buffer sizes a bit more than the default, or even layer in extra buffers yourself for that purpose.

Occam,

That is encouraging information. Would you mind sharing a bit more about your setup?

1) What flavor of Linux are you using?
2) What version of WINE are you running?
3) Which Compiler do you use?
4) What is your method of transfering data from your quote processor to your trading algorithms?


Here are my answers to those questions:
1) Ubuntu 12.04 LTS
2) 1.6
3) x86-w64-mingw32-g++ for quote processing/packaging , g++ for trading algorithms, risk management, and IB API interface.
4) Right now im writing quote updates to binary files with my NxCore quote processing application and reading those files with my trading system, but this is for rapid development only. Doing it like this allows me to process an entire days worth of the globex contracts i trade in 15 minutes or so, but I can probably get much faster if I dont have all of that file I/O. Oddly, it runs faster on windows but I suspect that is an OS resource allocation feature. Eventually data transmission will take place through TCP sockets, likely using the QT QTcpSocket framework. I suspect this may force a compiler change when I get to this point. I will eventually make a QT based GUI for my system, so this isnt a problem.


Thanks In advance
 
be fair dude, you have not provided any details of your setup until now. And yes, you are contradictory and probably confused by yourself: First you state you run the data feed handler on Wine and now you state you run it on a Windows box and forward data through sockets to your Linux box. Choose one so everyone is clear...


Do you really think that NxCore is a "hft data feed"? Do u really think that the microseconds it takes for my quote software running with WINE to pass data to my trading platform (which is on the same machine on a different thread....) is even on the same order of magnitude as the time it takes for the data to travel from CME to Nanex to me, than from my trading platform to IB.... and than back to CME ? And Im the one making a fool of myself?
 
Do you even know what WINE is???? Why would I bother running wine if I was going to run it on a different WINDOWS machine???? Go read a book


be fair dude, you have not provided any details of your setup until now. And yes, you are contradictory and probably confused by yourself: First you state you run the data feed handler on Wine and now you state you run it on a Windows box and forward data through sockets to your Linux box. Choose one so everyone is clear...
 
Back
Top