Does Linux Need Another Commercial Compiler?
Lurks asks: "My company, Codeplay, is set up to develop new and innovative compiler technology for the games industry. Our C compiler, VectorC, is a
cutting edge vectorizing compiler aimed at games and multimedia
applications that demand high performance generally through hand-optimized assembly. I'm writing to ask the
burning question on our minds, is it worth porting VectorC to Linux?
In fact, we're already targeting Linux as part of the PlayStation 2
version albeit not generating x86 code of course. A Linux port would see us converge this work with our Win32 compiler and such an
undertaking would certainly be popular with our Linux loving techies!
One caveat worth mentioning now is that the current version of VectorC is plain C only. 2.0 with full C++ compatibility is due early next year."
"Of course, commercial realities will rear their ugly head and we must consider that Linux isn't perhaps an obvious choice for a compiler aimed at games and multimedia applications. Given the certain degree of hostility towards commercial closed-source products of this nature, perhaps the idea should be consigned to the pet-project back burner for the future rather than rolled out as a commercial product?"
Do you mean converting your compiler to run under linux, or making it able to compile code FOR linux (and if so, under what platform).
IF it's a playstation/games developmetn compiler.... then the only reason to port it to linux is if you want to offer linux as a development environment for playstation games. Is it? What's the benefit?
Have a peek at the advert on their homepage.
Nice parody of the Ronseal ad seen in the uk a while back.
Mr Spams
If you don't let your life go on, your letting the terrorists win....
He says it's an optimizing compiler for hand-tuned assembly? What's the point? So basically, it's just another compiler, period. I have an idea, how about we just use GCC with the -mcpu=i686 and -march=i686 flags instead of paying for this.
/. story posters, this "story" is just a shameless plug.
Shame on
Why bother.
- The price is not out of reach
of the masses.
- It can compile the Linux kernel itself.
- It generates smaller/faster executables.
- It was compliant with the latest standards.
GCC is OK but it is not that great on the IA32 architecture. If you can demonstrate a significant improvement over GCC, you'd have a winner, provided most of the above requirements can be met.Being a programmer in the gaming industry myself, I would like to say that its probably a good idea. Linux is probably the best server operating system we have, and optimizing servers can be as important as optimizing the clients. As for the cost, this product isn't directed to the mainstream, it's directed to gaming companies, that are thinking about moving from Micrsoft Visual C++, to a faster compiler...
You appear to be equating Linux with x86. This is incorrect. Debian GNU/Linux is available now on half a dozen architectures with another half dozen ports well underway.
You also need to understand that the Linux community is very diverse. The hostility to commercial products that you have seen comes from people who don't represent the majority: no one does that (except perhaps Linus).
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
I am also in the early alpha stages of developing a C/C++/COBOL compiler for GNU/Linux that produces code 1000% faster than GNU/GCC. Although I am in the early stages of development and have not written any code yet, please send me your venture capital cheques.
For those who don't know much about it, VectorC is a compiler for targetting fairly specific types of system. Namely those with a bit of SIMD like your P3/P4/etc ,or small-scale parallelism like the PS2 (is there an XBox-specific version to help with shaders yet? dunno).
;o) Why? Well, I just don't see a huge market of Linux users with the type of processors which get the advantage from that kind of compiling. Cross-compiling for PS2 yeah, we do that in my office (though not from Linux). But one of the big selling points of Linux is that it works on lower-end processors, which don't have SIMD.
Anyway, I can see this not going down hugely well on Linux. Apart from the commercial thing, which is a big turnoff to many of the free-as-in-beer users
Anyway, its a good compiler, if you need it. Just think about whether you do or not...
Game dev and music blog
If you have applications in the embedded world, then you probably have a market. They won't care about the cost. A compiler is a non-recurring cost. Linux is also non-recurring. In the embedded world, lots of software *is* a recurring cost: operating systems, protocols, webservers, etc...
Now why isn't purify ported to Linux...
I briefly read over their specs on their website and it I find it quite humorous that all of the benchmark code is asm. So essentially, they have an assembler. Now, we have absolutely no idea what level of optimization they used and did not compare benchs with gcc with full optimization. What I would love to see is a comparision between gcc with -03 and they compiler then a comparision between a larger production quality program. I quite frankly can't see the market for this either.
int func(int a);
func((b += 3, b));
I am at 49 karma points now, actually... I gotta make bad posts in order to drive my karma down in order to gain the incentive to actually post intelligent comments again.
This story sounds very much like a company plug. However, if there is true desire to enter the Linux market with this product (as with most commercial products), the general Linux Mindset will have to be adhered to.
It seems obvious, but this has to be re-iterated : Linux is not a platform designed to get rich, it is one founded to get SMART and make things the way they should be made with community collaboration and upgradability in mind (open mind) so that the good/deserving products rise to the top and the crap stays at the bottom. IE: If you want this to work make it Open Source and the Linux community will use it, augment it and make it flourish. If you just want to make money... stick with Bill's boys (win32 platform).
Open source a Linox version of the Special Edition and keep the professional edition propriitory
If there was a torrent of 'How dare you!' type posts then that'd be telling us not to bother. :)
Mat 'Lurks' Bettinson, Codeplay Ltd.
I think you are wrong about Linux users. The problem is that many professional developer tools are very expensive for the independent mom and pop shop. Really good compilers and CASE tools can run into the tens of thousands of dollars, expenses which can not be justified for companies working on smaller contracts. Many Linux developers are jack-of-all-trade consultants doing contract work for small and mid-sized business. Programming most likely is only one aspect of the services which they provide.
I should not have made that post anonymous! Well, this will drive down my karma points for me... :)
Visit CmdrTaco's home page!
Why bother.
Scientific applications usually need more than single-precision arithmetic, while the vector instructions available in 3D-Now! and SSE are only single-precision. SSE2 has double-precision as well, so it may be more useful on the Pentium4 for scientific applications
Games generally aren't so picky about the precision, and so more can be done to optimize without breaking the code.
Hasn't it been ported to Linux? I seem to recall the Evil Satellite TV Company I was working for evaluating the cost of Purify for their embedded Linux development and then rejecting it due to the cost (Which was something like 10 grand per seat.) Maybe it was some other product, but I'm pretty sure they said Purify.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
Today, there are 2 compilers that are well known - GCC which is the default and most used on Linux, and Intel's ICC which is a commercial, but there is a free non-commercial version available from Intel. So far I have heard mixed reports from people about ICC effiency in terms of code generated, speed of binaries, size of binaries etc (slashdot users who use ICC - please post your conclusions).
Now - the next big compiler that will come out (commercially) is from Borland. Early reports from various testers suggest their C/C++ compiler is kicking both ICC and GCC in the ass, but again - I belive it when I see the numbers, although Borland got a reputation of isssuing quite fast compilers..
So - if you decide to release a compiler, you'll need to think about 3 points:
1. GCC compatible - you'll need it if you want to be used by open source users OR to allow developers to move their apps which used GCC to your compiler.
2. A free version (free as a beer) - in order to be really accepted and widely used by Linux users, you'll need to issue a free version for the developers to use. Intel learned this quite since the beginning that if they want their compiler to be accepted by the Linux users - they'll need to release a free version. Borland is rumored to release a free version also with their upcoming C/C++ compiler (command line version, not the GUI)
3. Competition - well, not much to say here, but you got companies like: Borland, Intel, and the GNU GCC, along with the Portland group's compiler, code warrior (Metrowerks) - plenty of competition. do you really want to get in?
Hetz (Heunique)
Programs compiled with gcc segfault when you try to push more than 32 megabytes on the stack.
Check out their home page if you want the executive summary of what their compiler does. (Unless 'vectorizing' is a term you're familar with).
But like another poster said, what do they mean by porting to Linux? Their compiler generates code that runs on Linux, or their compiler runs on Linux generating code for something else? (Or both)
If the optimizer is better then GCC then add/merge those components into GCC to improve it. This will save your company maintenance resources and time in the long run (ie. $$$) if the GCC community picks it up.
Porting this to linux seems to be a good idea, but the inherent problem is your business model. Who is your target audience? Are you targeting corporations such as lokisoft who will use your compiler to port/create games for linux?
(side note- the lokisoft page is down, i dunno if that is a fluke, if i have the wrong URL, or if they've packed up and left)
The problem is that if you target corp.'s like loki, you may not be able to sell enough units, or whatever, to justify the cost of porting. These linux gaming companies seem to fold faster than omlettes at waffle house.
If on the other hand, you just ported it and released it at random into the linux/OSS community, you would be doing the community a favor, and independant cells of programmers could attempt to port/write games for linux.
The problem with this solution is also the cost: If you release it open source for linux, you would be somewhat of a hero, or philanthropist, to the OSS community; however, you may not be able to justify the cost of porting it, if your idea is to make money by porting to linux.
I guess it depends on what time frame you think you can port it to linux in - if it would take you and your team an extra two days of programming, it may be worth it, as both a PR move and a gift to the OSS community. However, if it will take extra months of coding, just bear in mind that philanthropy doesn't pay bills.
Don't mean to be cynical, but you have to consider each decision as it relates to the almighty dollar.
It sounds as if you're doing fantastic work, though, keep it up.
sig?
Any plans for a PPC / AltiVec version?
Lars T.
To the guy who modded me down from perfect to terrible Karma - Apple haters still suck
Linux users seem to be in general pretty much opposed to paying for anything.
Only partially true. I think you're right that Linux hobbyists are reluctant to pay for anything, just as a hobbyist is more likely to be running a warez version of Windows 2000 Server.
A commercial enterprise is going to spend the money where they have to. Else how do you explain DB/2, Oracle and Notes server for Linux?
Now, asking how many companies are really using Linux in planned, approved production (as opposed to techies setting up some rogue server) is a legitimate question...
you are right on double precision thing, but that is not all vectorc does. scheulding is much better than alternatives (remider: I haven't yet tested intel's compiler) and software prefetching, cpu dependent cache management etc. are also important factors. I experienced huge speedups with double precision x87 code on my benchmarks too. Actually if you are not using the same values over and over such that you can keep them in registers for a long time, 3dnow! is only a bit faster than x87 code on athlon. Cache managment and instruction scheulding is all that counts under moderate data loads.
Gentlemen, you can't fight in here, this is the War Room!
I don't think you'll see too many "How Dare You"
posts - what you will see is a good number of
"Yawn - why do we need this?" and "I wouldn't
buy it - but I think you should port it anyway".
The fact is that even the very best optimising
compiler is only going to buy you about the same
performance increase as waiting six months and
letting Moores law do the work.
Anyone who is developing OpenSourced software had
better be sure that they'll get the needed speed
from vanilla GCC because their users will only
be using GCC. Hence your market is probably
limited to commercial closed-source software
that *needs* that small additional speed boost.
Hence only commercial games companies who support
Linux. That's a VERY small audience. I don't see
how you could ever recoup your costs. Maybe you
should give it away for free and hope to get a
huge wave of enthusiasm for the product that
would spill over into sales for the Windoze
version?
You're obviously quite right. We get a surprising amount of interest from the scientific/academic community. High tech compilers that vectorize are nothing new in this area, but generally they're Fortran compilers for mainframes etc.
I'm guessing that with the power of desktops these days and the prevalence of C/C++, micro based scientific computing is looking more attractive.
It's quite spooky to see all these high energy research labs (Eek!) in our web logs. I wonder how many of these people understand the precision issues with most vector units out there.
Perhaps the Pentium 4 will become a standard choice for scientific computing because of the double precision cable vector unit. Just as well we put a lot of effort into SSE2.
Mat 'Lurks' Bettinson, Codeplay Ltd.
Maybe you should ask Loki games for more information. They probably know better who is willing to pay for this.
I don't know what the business performance of Borland is with for example "Kylix", but for now, I haven't seen any free software yet, which was made with Kylix (does not mean it doesn't exist) but it makes me believe that their Kylix project was lesser success than intentionally expected.
Before Borland/Inprise started the Kylix project, they published a survey on their site, to investigate market demand. Maybe I'm mistaken, but I think that the enthousiasm in the survey results has not had the expected ROI for Borland. With the dot-bomb and the new economy collapse, investments in the Linux OS has gone down as well, except for those who chose Linux to be a strategic weapon against their competitors (IBM vs Microsoft).
Still, the point I want to make is, you need to determine your audience, but be cautious in your investigation methods and don't forget to do the general market watch.
Bizar technology?
Maybe it's just me, but if your specialty is high performance vector operations targeted specifically at graphic-intensive programs applications like games where vector operations are CPU-bound, then why would you not just code a superfast set of assembly routines for vector operations that are tuned for the various processors, and provide them as a C library that the world can use with their compiler of choice?
It seems like the alternative with VectorC is for me to implement my own vector libraries anyway and then hope your compiler is both clever enough to figure out how to optimize my code, and robust enough not to break on other constructs.
I'm not trying to be hostile, just curious. Perhaps there are tons more programs besides graphics / games that benefit from VectorC's optimization? Otherwise, it looks like you've implemented an entire C compiler to get a few features you could add to an existing one otherwise.
Vectorc guys, I get the impression you don't know what you are producing :)
[time to complete]
Latest (relased) Borland compiler, full optimizations on: 142
Hand optimized c code (according to athlon optimization guide) with latest (relased)borland compiler, full optimizations on: 100 (ref)
Vectorc 1.1 demo single precision 3dnow!, optimization hints: 46
Vectorc 1.1 demo, double precision x87: 48
Real code snippet from a real application. Do I have to say more? Normally one wouldn't use a borland suite for high performance critical code, but not everyone can afford to have a high-tech scientific compiler.
Gentlemen, you can't fight in here, this is the War Room!
I've recently started working with a couple of 3D engines, and would really like to compile them with something like VectorC instead of GCC, and certainly I would like to see some of the Free Software Developers who make games use a compiler like VectorC if they can afford it, but especially developers like Loki Games, ID Software, etc. Of course, I would probably just use GCC until I had something very much worth presenting to the public (Open Source or otherwise), and for me to get the compiler before the final stages of development would be a question of how much VectorC costs, and how much the Version 2 upgrade would cost - but that is just me. As I said, there are some people out there who need it. What about 3D app makers like Alias|Wavefront (Maya), NaN (Blender), and several other companies I can't remember at the moment (the creators of Shake and Tremor, etc)? I don't know what compilers are available for PPC/PPC64 but obviously not many people care about that when it comes to games, but I'm sure someone will eventually make an equivalent of vectorc for ppc/64 if it hasn't already been done - but when it comes to the x86 I would really like to see it ported over (It would be nice to get the PS2 and x86 package togethor).
But you forgot to mention the price in the blurb which ended to the front page...
We could use some quality C, C++, FORTRAN compilers. Gcc might be the holy grail for the free software Taliban. But anyone who has done serious work knows about it's limitations. And don't give that bull crap about "the best support available on the net" - does'nt work in production environments. It's very important for commercial compilers to be available on Linux as it makes increasing inroads into Games, High end Graphics, Scientific computing etc. Already a lot of engineering software and other kinds of performace-critical software has gone the NT/2000 way, one of the reasons being the lack of good compiler or compilers that are too expensive on other UNIX platforms.
Actually, Brett Glass has been poiting out for a long time how Gcc has glutted the market for good compilers.
Anyone know how good the Intel compilers are ?
Hmm... I don't know about you but... I've bought quite a bit of software for Linux and a gob of books.
Codifex
Codifex Maximus ~ In search of... a shorter sig.
I work for a company that develops applications for high performance computing clusters (aka beowulf). In addition to application development, we provide turn-key cluster solutions. Meaning, we act as a scientific cluster technology integrator. Also, we only use linux!
This said, we have been benchmarking the Intel C compilers (under Linux) for sometime on the Pentium4. We are getting some great results with the Intel compiler on the Pentium4, although there are some usability issues that intel is working through; but speedup is excellent.
Now, given that VectorC can make use of parallelism inherent in some C codes on multiple x86 architectures (SSE, SSE2, 3dNow), I could see the availability of VectorC for Linux as being a big win for us. Especially if it can give the Intel compiler a run for it's money on the Pentium4!
Ok, as a side note we resell Portland Group Compilers, so our customers will pay for damn good compilers!
I really hope codeplay decides to throw some developers at porting VectorC to Linux. I can be reached via email at: msnitzer@plogic.com
I look forward to hearing more on Linux offerings from Codeplay in the future.
While supporting Linux may not show any direct impact in the game market as of yet what it would do is allow your company to market the product as a cross platform game compiler. Before your compiler would be of any use in that area you would need to have a PPC port, ideally both Linux and Mac. Also the most important part of a cross compiler is optimized libraries that run on every supported platform. This allows for a game company to develop once and target a number of different platforms with a simple compile. The ability for a game company to widen their audience with minimal work and investment will make your compiler an attractive option whether or not Linux has a huge game market.
Another area where Linux would be a boon is as compile farms. If a Linux version of your compiler came out that could target not just Linux but every other platform you support then companies could set up cheap compile farms to compile large programs in the background while a developers work stations\ remain free for development or testing. The beauty of it is that the compiler itself can be targeted to Linux and not specifically to an architecture like x86 and compiled to work on any Linux platform (which is almost any platform out there). With the PS2 running Linux a bunch of these boxes could be set up for this.
If game companies could target any platform they wish without having to invest it makes them happy. The game industry is fickle. One year this is the platform to target, the next it is completely different. Having Linux as a target may not cause a developer to start pumping out Linux games but what it does do is leave the option open if the industry should shift that way. It makes developers sleep easier at night knowing their code will not become obsolete by the time they wake up.
"One caveat worth mentioning now is that the current version of VectorC is plain C only. 2.0 with full C++ compatibility is due early next year."
Full C++ compatibility? I think that would be a first!
This page has a freely downloadable demo version, which only compiles 3 functions in a single source file, so that you can at least see if it does better than your current compiler.
However, you should get better performance the more of the code you compile with VectorC, as you can select different calling conventions using MMX, 3DNow or SSE, avoiding switching in and out of those modes between functions (with all the inherent copying in and out of the extended registers).
... for mainstream acceptance. C++ compilers all have their own name-mangling schemes which makes different compilers fundamentally incompatible. So the compiler may be able to find a niche market among developers of proprietary applications, but it's very difficult to persuade people to switch from g++, since that's what all the preloaded C++ libraries that ship with Linux use.
You need to move on.
What will your compiler cost? Will the super computing crowd adopt it? Will there be Fortran support (I didn't see that)?
The Portland Group charges a Lot for their compilers, and because GNU Fortran ain't so hot, people have to use PGC's product. A lot of these customers are the super comuting crowd.
Whether people pay for your product depends on the cost-benefit ratio.
But I have a small warning for you: If your compiler really does produce awesomely better code in that particular area, then if that area becomes popular with the GCC crowd, you are going to see alot of work spent on optimization. In other words, your product may be a spur to make GCC competitive with VectorC.
And I would also point out that I think that if VectorC, available for Linux/someArch, does NOT stir the GCC developers to improve, then your specific market doesn't exist on Linux.
Really sucks: Either you eventually face competition with GCC, or your product bombs on Linux.
"Avast! Prepare for the rodgering!" THWACK! "Arrr.. me nards.."
I am developing an extremely authentic and highly innovative gaming technology for the information superhighway called SuperDuperGameAccelerator. It's really cool. It will accelerate games and cook your dinner too. I was wondering if it's worth porting it to Linux. In fact I'm already porting it to Linux, I just wanted to announce it to the world by posting on slashdot. You know, after the .com crash we can't get any more funding, so we could use all the free advertizing we could find. And I figured slashdot editors are too stupid to recognize the thinly disguised commercial...
___
If you think big enough, you'll never have to do it.
We are developing signal processing applications under GNU/Linux. Most likely, we will have a PowerPC G4, but it could be a SSE Pentium. We need C++ though. And we are very willing to spend $$.
I have no angst against commercial software. My problem is unfair tactics and proprietary software aimed at locking others out. This is a compiler, folks! Unless they start "extending" C or the ELF format, it's actually a good idea.
For the record, I've bought and paid for 4 Linux games and am evaluating CodeWeaver's plugin. I know other people who are also willing to pay for good Linux software (I've already made my willingness to pay for RogerWilco for Linux to the developers). So let's not be hasty saying Linux users' won't go for it
People requiring an optimised compiler for x86 will be happy to pay for it. Cheap clustering and ease of maitenance is pushing linux more and more into the calculations world, sheer data-crunching for physcial and electrical models and what not. gcc is a great compiler, but it seems less than optimized relative to (say) Metware on a PowerPC box. It doesnt always generate fast code.
The more commercial apps for linux the better! I've already spent more money on software (applix, games) than before I switched to a free opsys. And at work we spend lots (*lots*) of money on number-crunching software for linux...
The heat from below can burn your eyes out
I can't comment on what you're talking about without knowing what you're doing. Suffice to say those results aren't indicative of our performance.
So yes, you do have to say more or at least I'd like you to. Drop a mail to support@codeplay.com and we'll work out what's going on.
BTW we released 1.2 last week which is a substantial upgrade from 1.1. In particular Pentium 4 support in 1.1 was very limited.
Mat 'Lurks' Bettinson, Codeplay Ltd.
...but many (I'd venture to say most...) of the users HAVE a P3/P4/Athlon/etc. machine in the first place. Don't assume that because it's one of it's big selling points that it's not used on other machines or that because it's popular with the free-beer crowd that others (like game developers or commercial distributions) won't be interested in it.
Wrong assumptions lead to wrong conclusions.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
And Insure++ is their primary competitor (nearly everyone else is licensing stuff from Parasoft for thier bounds/leak checkers...).
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
While the game market is very small on Linux (at least for another year or two), and many game writers on Linux are hobbyists that probably won't be inclined or able to pay the seat licenses for your compiler, there are other, related fields where such a compiler can be of great use. Renderfarms, for instance, are moving over to Linux more and more, and would be a natural target for your product.
Even greater would be if your compiler could be adapted for scientific work (I have a colleague who seems to be willing to sell his firstborn to speed up his object recognition software). Those kinds of applications (lots and lots of filters) should be natural targets for you compiler as well, if precision can be controlled.
/Janne
Trust the Computer. The Computer is your friend.
>the current version of VectorC is plain C only
Sounds like an excellent way to reduce code bloat. I suppose it's too much to hope that they take the "better C than C" parts of C++ and leave it at that.
I'm actually half serious here. I've worked on large projects in both C and C++, and the ones which were most successful were the ones where people didn't get carried away, trying to use every new, buggy, inefficient, feature of C++ in an attempt to prove that they could.
I'm all in favour of a compiler which restricts its features to those it does well instead of providing half-baked implementations of C++'isms just to bump up the feature list.
So far, all the people that have made comments have been thinking in terms of things like Loki or old machines that wouldn't use your stuff well.
Multimedia comes to mind.
Serious number crunching comes to mind.
While gaming's "nonexistent" (I won't bore you with what I know about all of this- suffice it to say that the malaise for Linux gaming is less due to a lack of a market and more due to a lack of a channel to sell and in some cases hardware (i.e. 3D cards...) to run it on.) it's about to have an upturn. It would be NICE for a company that is using your compiler to make their game go be able to make the Linux version run as fast if they so chose to do it.
GCC's ok at either. There ARE better compilers for some things, though.
Depending on the price of the compiler and when it offers C++ support, I might be very interested in purchasing a license to it.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
This might help the Linux games market. The extra jolt of speed it would give might make Linux a more popular gaming platform. Now for a mini-rant...
Of all things I can think of, games are the one that can justifiably be developed Closed Source. That's because they're bespoke software - there aren't going to be (or at least not many) bugfix versions and it's not as if games are infrastructural (like libraries, OSs, webservers, etc. - the stuff best developed in an Open fashion).
I don't like trolls and mod against me if you like, but I'd prefer if you'd reply.
People are going to mark this as flamebait and trollish (With a karma of 50 I really don't care.) but trust me on this one, don't bother. People are already making games and multimedia software for Linux, and it isn't selling very well. A commercial compiler for stuff people can not sell in the first place is pretty much just a big waste of time.
I do high-performance computing, and I'd love to be able to try out Vector-C on some of our P-4 and Alpha Linux clusters, if I could. Right now, we use Intel's icc or gcc on x86 and Compaq's ccc or gcc on alpha, respectively. Pretty soon we are going to be looking at Itanium as well. Some of the time we are hand-hacking assembly just like the game programmers are, which is kind of sad; we would rather be compiling C. What Mat Bettinson said is definitely the case: "micro based scientific computing is looking more attractive."
Despite what some ppl here are saying, it's not an issue if it can't compile the kernel, or if it's not 100% gcc compatible, because most of the things the high-performance computing applications I've seen don't need to spend a whole lot of time in the kernel. However, you do have to make it work with both 2.1 and 2.2 glibc (please please please). The hacks we came up with to make icc work on our glibc-2.2 RH7 boxes are ugly and fragile.
Language issues: C++ is almost never a big deal in HPC, but C/FORTRAN support is great. Having at least partial C99 support is best because then you get float *restrict foo, et al. Also, remember that not all HPC codes are fp. Some of us write integer intensive codes and/or memory intensive codes.
It's not an issue if it's not free-beer or free-software, because research grants will probably be happy to pay reasonable amounts for it -- maybe a couple hundred bucks, say -- but you have to remember that Intel is giving icc betas away for basically nothing, so you can't charge too much. This is not a troll, just trying to be realistic here.
Disclaimer: I am not speaking for my employers. I am not a person who gets to decide how grant money is spent (yet). These are just my opinions.
If the gcc-compatibility is up to par, then it should be possible at some time in the future to compile the Linux kernel with VectorC. However, remember that there are currently _no_ compilers other than GCC which can do this (please correct me if I am wrong), as the kernel source uses a number of GCC-specific extensions to C.
It will already compile some other large pieces of software; I myself have used it to compile MAME, and it gave a significant speedup on most games over compiling it with Cygwin GCC (all on Win32, obviously).
"An interim release of VectorC with preliminary C++ support is due in Q4 2001. VectorC 2.0 with full C++ compliancy is scheduled for release in Q1 2002."
Even if Codeplay was to use the Edison Design Group C++ front end -- highly likely, as it's famous throughout the industry as an extraordinarily compliant, high quality front end, and seemingly a perfect match to the existing VectorC back end -- I'm highly skeptical this schedule could be met.
On the other hand, a lot of performance-minded projects stick with plain C. (I'm not commenting on whether or not that's the right decision; I'm observing what decisions are made in the industry.)
Stupid job ads, weird spam, occasional insight at
...it's Loki Games.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
Speaking as a game developer, who codes primarily on Linux for Linux, I would certainly buy a copy once C++ support is available, if the code produced was fast.
I have lost touch with the ammount of time I have spent going over code again and again to make it a bit more efficient, and removing bottlenecks. I would gladly pay for a product which would enable me to ship binaries that were faster.
The question of ABI compatability on C++ is very tricky though. A C++ compiler would be of limited use if it did not use the same ABI as g++, though with the release of gcc 3, this ABI has at least stabilised.
I have 1.2.1, I just haven't benchmarked it yet. Chances are until I check intel's compiler I won't. Those result might not be indicative of your expected perforance but performance on my program is what counts for me (notice that values are given for a specific code snippet and I did not claim to have done extensive benchmarking.) Memory reads in terms of bytes for 64 bit and 32 bit precision conditions are same, that might be leading you to think something is wrong with my values. Also, I'm registered and do ask my questions if they appear.
Gentlemen, you can't fight in here, this is the War Room!
Don't wait for Apple. They're not the ones to talk to.
If you're talking multimedia procesing, etc. like you did in an earlier comment, you're going to want to talk to the Yellow Dog Linux people- that's some of the markets they're going to with their small clusters of G4 computers (as in as many as 8 top-end G4's in the same space as Apple's tower...). IBM would be interested for the same reasons.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
It really depends on how you want to work it. Binary only releases are popular in certain Linux segments that don't want to hasle with compiling. The problem is of course you're only a kernal update away from having a program that doesn't work.
I think there are aspects that of the Linux Universe that would benifit from a well done multimedia compiler. DVD players, or general Home Theater Computer enviroments, Linux Set Top boxes. etc. Games of course would welcome this too.
But the real problem of course is how to you balance making a comcerial distro for Linux that is okay from the Opensource,and GNU communities perspective.
There are a couple ways to go. You can go the QT way, and have a free and comercial version. The hope being that the various projects will use your libs and compiler, and thus it would be popular for comercial aspects that would actually pay you.
Second would be binary only distro. Not as popular mind you because the person who puts together the Binary Distro (Which I assume would be a person who bought the package) may bit off more than they wanted to chew keeping things up to date. In order for this to work in opensource you'd need a lot of compiler directives. The idea being you could compile the project with GCC, it just wouldn't be as efficiant.
Third would be a hybrid method. Some sort pre-compile on the closed stuff, and an included client compiler that would bring everything system dependent together. Perhaps even making the compiler and libs free to distro, but the development enviroment closed.
My person preference would be number one. Anyone know how well QT does?
If you're talking to just the Linux crowd, it'd be a harder sell (I'd buy it, but I'd prefer letting you know that I'm NOT doing Windows development with it...).
If you're talking to the games development companies, it'd be a plus, not a minus. If they use VectorC, they can expect to target two differing PC OS platforms as well as gaming consoles (As you probably well know, while C is portable, most compilers don't behave consistently- it's always better to use the same compiler for all target environments...)- if you do the MacOS X version/PPC Linux version, that would make for two more platforms as well.
It's all in who you're really trying to sell to.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
On the subject of comparing to other compilers, have you looked at KAI C++? From what I've heard it's quite popular in scientific programming because its performance apparently is a lot better than other C++ compilers, especially with advanced stuff like expression templates. However I don't know how well (if at all) it addresses vectorization, as it's available for a plethora of high end platforms (but no win32 here!).
As someone who does lighting simulation work, anything that would make my simulations run faster would be welcome. If it could shave even 20% off a Radiance simulation run, it would be worth a fair bit.
More generally, I see numerous applications in research, provided that the compiler and its use on clusters is reasonably-priced.
Lurks, I'm surprised you didn't do this.
$750 for the professional edition and $80 for the standard. That's more than reasonable a cost for the product. I'd at least buy the standard edition for Linux if it were available for both x86 and PPC.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
I'm sure plenty of people will disagree with my conclusions, but I believe them to be sound. If you want to be successful on Linux (or any other free OS), you need to be libre/free.
That means making the source code available under a GPL-like license.
However, you can still protect your market at the same time. Just make it a requirement that anything compiled with the libre version of VectorC, or a derivative, also be licensed under the GPL or any of the similar licenses recognized by the OSI.
Then dual-license the compiler so that anyone who pays for the commercial license is free to do whatever they want with the resultant binaries, no licensing restrictions.
That way you can contribute to the community by providing a libre compiler, benefit from the community who will likely contribute bug-fixes and enhancements, and still make money from the people who would be willing to pay in the first place.
When information is power, privacy is freedom.
no one has realized this is a troll.
If that's not a commercial, I don't know what is.
Where the lame seem to think that every little request for something coming from a company is a thinly veiled ad, etc.
Linux WOULD be nice- I could see some uses for your compiler in the embedded space (which is one place Linux is definitely taking off in...) depending on the embedded application. Your benchmark info doesn't seem to show how big the executables were- how much bigger/smaller is your code compared to the other compilers?
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
There was an article on VectorC on Ace's Hardware a while ago:
p ost_id=55000348&keyword_highlight=VectorC
p ?message_id=65013137
p ?message_id=65013223
http://www.aceshardware.com/Spades/read_news.php?
Very substantial performance gains were claimed. However, there was some concern about how well the benchmarks were set up:
http://www.aceshardware.com/board/general/read.ph
http://www.aceshardware.com/board/general/read.ph
In short, I'd take a very careful look at the benchmark code and methods of compiling before making conclusions about VectorC's performance. It might still be great; however, past benchmarks that have been floated have been questioned.
DISCLAIMER: I have not used VectorC, or directly examined the test code or assembly code generated for any of the tests. I have no direct assessment of the benchmarks - I'm pointing to others' assessments in response to another article about the compiler.
You have an "auto-vectorising" compiler, good.
Couldn't it be targeted also at scientific computing?
A lot of these code are in Fortran, but C is also used..
I doubt very much that targetting games developer on Linux will get you very far, but multimedia processing could be interesting though.
But there is competition of course, from other compilers of course, but also from libraries: a good hand-optimised library can get you quite interesting performances..
gcc isn't too shabby though and it is getting better all the time. It's not an easy market to enter and dominate.
This is my signature. There are many signatures like it but this one is mine..
It's still pretty early days for us, it could well be something broken! Showing your code to our lads could either a) point out something you need to do to make things faster or b) point out something we need to fix/improve. The only thing that makes me think something is wrong with your values is that we just don't see that sort of lackluster performance in our tests. If we did, we'd fix the compiler! Mat 'Lurks' Bettinson, Codeplay Ltd.
Insure is *etremely* expensive. We are talking about 10K EUR for a multiple developers license which is way beyond what normal shops can shell out for such tools.
Anyway, to drift back onto topic, it is worth remembering that Kylix 2.0, if when it ships (and I hope Borland is taking a long-term view on this one and keeps plugging at it), will include Borland C++ Builder. Yup Borland C++ On linux will be another C++ option.
My Karma: ran over your Dogma
StrawberryFrog
There is another compiler worth considering. Metrowerks has an auto vectorizing compiler for the Intel platform, Code Warrior, which both runs under and targets Linux (Intel & PowerPC). Code Warrior also targets Windows, Mac Classic, OS X, GAMECUBE, PS2 and most other game platforms. Benchmarks can be found on the Metrowerks site (http://www.metrowerks.com), but they're a bit old. We'd be happy to provide up-to-date benchmarks for anyone who's interested.
The real strength, however, is CodeWarrior's optimization and code generation.
I'm biased, though, as I'm a compiler engineer (PowerPC) for Metrowerks, so take all of this with a grain of salt.
--Doug
Editor : Adam Barker
Yes, I can't spell so I need one of those editor types.
OH MY GOD!!! By your observation, EVERY slashdot submission must be an ad! How did this conspiracy slip past us?
Quick, call the cops, the military, my god man, call the President!
1. Does Linux need another compiler?
Yes, competition is what linux is all about (IMHO).
2. Does Linux need a commercial compiler that performs xyz times better than GCC? Yes! While GCC has helped get linux where it is today we all know it has short comings. If you have a compiler that would help games / graphics perform better and get big name developers to develop for linux then by all means do it!!
3. Can I expect my super duper compiler to be accepted by the general linux community and have the kernel programmed in it?? Uh. most likely not. However it would be great if this compiler (or maybe a version of this compiler) had a license friendly enough that if someone chose to purchase and develop with it they would be able to distribute the source code under a license they choose.
Bottom Line is in order to be a team player don't be afraid to bring a commercial compiler, by all means do port it to other architectures (x86, PPC, etc), allow us to choose which license we code under if we do purchase your compiler, and hey if you feel that there is something that GCC should have to make linux a better place and then by all means feel free to donate :)
All the technical people I know with computers at home, use them primarily for games, and hence, run windows. Without exception, they all say that if a popular game came out that also ran on linux, they would rather run the linux version. They have all suffered thru the "windoze experience" and would gladly convert to linux if the games were available there. Loki mostly ports games which have already been out for a while on windows - which is just too late.
The final straw that would break these people of the window's habit is if the games ran faster on linux. This is entirely possible if these commercial games had an optimized compiler behind them. Numerous low-level benchmarks show linux is upto 30% faster than windows2000 - it's just that much more efficient with the given hardware resources. In this circumstance, the "free software" inclination is completely irrelevent. People buy games, and would much rather invest in a linux future than a bleak M$ one.
What you need to do is prove to these commercial game developers just how well your compiler would perform on linux.
One more comment: I think I am not alone in that, being technically sophisticated, I use linux almost exclusively, and I also use it on the latest high-end machines. I would love to see a game that could take advantage of a dual 1.4 GHz athlon with a GeForce3. So, smp?
tcboo
If you want to be successful on Linux (or any other free OS), you need to be libre/free.
That depends on how you define success.
This will never displace gcc as the compiler used by most people - because gcc is good enough, open, and free.
But it has a fine niche market as a "pay extra, get better performance" option for people with serious crunch to do - graphic games, scientific, financial modeling, etc. It will continue to hold this niche unless/until gcc or some other free&open compiler achieves comparable performance AND cross-platform ability to all game platforms, or some commercial competitor outdoes it - at which point the product's market would be in jepoarday regardless of whether it had been ported to Linux.
At a minimum it should be able to produce code to RUN on Linux. Otherwise it's not supporting the game authors who want to release a Linux version of their product.
But I think that a version that runs ON Linux, if not overpriced (or as an extra-cost extra on an existing non-Linux release) should pay for the port and make a tidy profit. At a minimum some game designers will want to work directly on the Linux platform rather than being limited to cross-platform development.
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
...when I spoke to your sales rep at GDC and Siggraph, he indicated that C++ wasn't ready, as you said. He also didn't think your symbol information would be compatible with VTune or the other standard Windows profilers and couldn't tell me of any test suites that your compiler had passed, though he named a couple which were "close." I wouldn't use a compiler which doesn't pass basic conformance testing, and I certainly wouldn't take on a new compiler if I don't know that I can profile its output to prove that its working.
When I tried creating some simple code and looking at the disassembly on the sample machine at Siggraph, the compiler choked on some valid code (it seemed confused by the critical 'volatile' keyword), and the assembly generated was extremely naive about cache use and couldn't even hoist redundant operations out of loop operations.
So far as I can see, I'm supposed to dump my compiler for something that lets me use half a dozen instructions I can get with inline assembly or Intel's _free_ compiler, where Windows is concerned.
Shouldn't you finish your tools and make them work on one platform before you go trying to pitch them on others? Have your tools really advanced so far in the last few months that you're ready to split resources?
This isn't a compiler issue, as separation between multiple processors from a single program will need explicit multi-threading or multiple processes -- automatically finding enough parallelism from a single program to acheive this is very much a research topic at present, except for a very few well-tested and simple cases.
Even if your compiler did fpu ops in no time, it wouldn't get much better. Of 16 seconds completion time with 3dnow! and 17 seconds with normal fpu, 12 seconds is used for memory accesses. So, if you isolate the fpu operations, your compiler is doing 570% better than hand optimized borland code and 950% better than compiler optimized borland code. Now tell me how to do operations without operands and I'll give your compiler credit for 950% speedup...
Gentlemen, you can't fight in here, this is the War Room!
compiling for (running on) linux is not new
Intel has compilers for IA32 and IA64
ARM has compilers for ARM arch
IBM has optimised GCC for PowerPC (smart move for IBM)
MIPS pays for optimisations + support to GCC (algorithmics)
the difference is that you will never be able compile the kernel with anything other than GCC because it changes so often and in terms of support kernel hackers will tell you to jump if you try reporting bugs that are solely compiler related and not GCC
Compiling for (running on) linux is a matter of sticking to the standards (like ELF) and the ABI all are documented
(they don't change all that often although they changed this year for GCC 3.x )
Really you have to have someone signed up because most people have tried this and then gone back to GCC because its easy and the performance is not all that different !
(people end up inline assembly anyway if they only have one target which is much better than a compiler can do because it does not know what it does at run time while the developer can at least guess)
fun to see that the big vendors are split MIPS + IBM do GCC after trying out comerial compilers while Intel & ARM adopts a dual policy of funding GCC work and also have a closed version
no single silicon vendor ignores GCC
it is one of the backbones to *BSD, Linux HP-UX (kernel compiled with GCC) VX-works (you receive hefty manuals about GCC and GDB when fork out for wind dev suite) and lots more
users include NASA, ESA, Chinese Government, WHO and many more
(people lives depend on GCC every second)
if you want to do research then GCC is a good place to start
we all owe a great deal to people who have put their time and effort into the projects and people who demanded to use it in projects
regards
john jones
Yeah, this'll probably require doing much of the porting work before determining whether there's a market for it. It's called R&D, and it does sometimes lead to dead-ends. Deal.
"There's no such thing as bad PR."
Microsoft has taken this to heart and will be funding Slashdot for the next 3 years. (Well, ZDNet is no longer functioning as their press release service -- what did you expect them to do?)
I totally agree, writing SIMD assembly for each platform you want your code to run on is waaaay too much effort when you have deadlines to deal with.
I assume that if Snowfox thinks that there are only a dozen instructions for SIMD operations in games programming, then he is sorely mistaken. The PS2 has _loads_ of vector operations, and I find that it's much more productive to have tools which will do that, along with scheduling the resulting vector operations efficiently, for me.
Also, some media processors have literally _hundreds_ of vector instructions, and even remembering which one of those instructions is suitable for a single operation is hard enough to remember! Leave it to the compiler, I say
Is this really true?? :(( I grew up reading his books and they were the one thing that kept me going. His books were the only refuge I had when my alcoholic father came home and beat my mother.
C is intended to be a high level assembler. Commercial compilers were always lower quality as they did not address issues of developers that were doing some cutting edge research(aka: Linux,Embedded programming.) Guess they are alright. However, I will not use it, because I am sure sony will make me sign NDA that will sign over my propery and my soul over to sony in case of any unorthodox situation. And another thing, I will have to learn a new compiler.
I would say making GCC for PS2 is better idea overall, because people will be able to compile their configure stuff just by itself. Sure it can be there, but ones who do not wish to follow the movement, they want to splice it, and it is unacceptable, especially with such essetial things like compilers.
p.
IMHO the only question for you should be: is there a market? Obviously the current linux games market won't justify the effort. Possibly the Computer Graphics people are interrested in such a compiler, or maybe for scientific stuff (after all a 30% speed increase in a 100 node beowolf cluster means that you could save 30 nodes).
It's getting harder to recognize the trolls from the trolls that got trolled.
Secondly I'd like to say that Slashdot isn't the best place to ask about commercial software. :)
I can tell you this, we each have to support Linux in our own way. Ever since I was a kid coding in BASIC on an Atari 600XL I've dreamt of having a software company, I'm not going to give up on that dream because I've taken a liking to open source. Of course I'll continue to release open source projects, much in the way Loki has. But if you like Linux enough to bring a product over you should do it. You are just as much a part of the community as the people you are asking, and therefore have just as much right to shape the community.
Also one quick comment about everyone saying how Loki failed so you have no audience. You people are missing the point. Loki "failed" (if we must put the nail in it's coffin) because it was linux ONLY. Presumably game developers could use VectorC to create games for Linux AND Windows (any Mac OS X version?). I certainly don't expect to sell a whole heck of alot of copies for Linux, or really even to be well recieved, at least until I can afford to do some of the bigger projects that I want to do. But at this point Linux isn't meant to be the big moneymaker. I just use Linux almost exclusively, and I'm sure there are others that do, who might want to play my game. They shouldn't have to boot Windows to do that.
So yeah, I'd say that you have a good chance with VectorC, it would provide cross-platform options for the developers that use it, and if you promote a library like SDL then that will give them even more reason to compile for Linux as well (and thus buy the Linux version) by lowering the amount of work involved in moving the code from Windows.
Linux is in need of a good commercial C compiler if commercial linux applications are to start appearing. Let me explain why.
Currently, there are only a few C compilers available for Linux. GCC, Intel, and LCC are the only reasonably standards compliant compilers.
LCC is C only, and can generate invalid code with optimizing on. Also, it's under an oddball license that selling an app compiled with must also be bundeled with a C compiler construction book.
GCC is the defacto standard, but because it's released under the GNU GPL license, some companies have problems using it.
Specifically, although the FAQ states that you can compile any code you want with it, some of our engineers and lawyers examined the code it produces, copyright law, and the GPL, and came to the conclusion that all binaries it compiles does contain GPL code from the code generator as well as common functions that get inlined (strcpy, strlen, etc) and the startup stub code, so releasing a closed source binary compiled with gcc would put us at risk for a lawsuit. The only alternatives are to rewrite substantial parts of gcc (and then do thorough strictness and validation testing), or buy a relicensed version of gcc from FSF, which is quite expensive. Also, the inline assembly support and syntax is horrible, and we need inine assembly for some critical speed enhancements, especially since gcc code is incredibly fucking slow.
We're currently working with Intel's compiler, but another one would be good.
Metrowerks was once planning on releasing an x86 linux compiler, which would have been nice since the speed is slightly better than gcc, the generated code is better, and the inline assembly support is excellent. They released an ide that uses gcc, and then got bought by motorola. oh well.
http://minnie.tuhs.org/pipermail/mp3encoder/2001-O ctober/003934.html
with a link to someone comparing codeplay to other compilers,
I'm afraid it is. I was watching "Stand By Me" on TBS, when I flipped to headline news to see if there was any new terrorist news, and they mentioned it.
Details are limited right now, but it apparently involves a rare blood infection (like with Jim "Muppets" Henson?). CDC people were all over his house, and the whole town is quarantined over a possible terrorist biological/chemical attack.
I'm so fucking pissed right now! Fuck those bastards! Nuck Afghanastan to hell!
shit
It's time to move on from C and C++. (Take a look at the sans top 20 list of exploits, and tell me how many of those items would be there if we used modern, safe languages!) Security, portability, and code reuse are vital for building robust large systems. Please, no more C compilers, and no more C!
Well, okay, it does a few routines much faster, but so what? Use Intel's IPP routines, or just pluck out the asm you see there and use it yourself. FPU86 is slow. That's why there IS SSE/SSE2, or even MMX.
This may have been said already, but I was looking at the VectorC site and I noticed that the standard edition does not include Athlon or Pentium 4 support. I just want to comment that if a Linux port is made (and it should be), the standard edition should include Athlon support. I don't care about P4 support so much. That is, if the Linux version uses the same pricing/licensing system as the Windows version.... But, until I'm actually making money from my games, I can't justify spending more than $75 for a compiler, and my main target CPUs are the Athlon/Duron and the P2/P3.
A solution to the problem with music today
This seems on target RE high-performance computing needs (kernel compilation is not a major issue, there is a whole different set of needs).
I wrote a processor-heavy simulation last year and spend a few weeks hand-coding the math into the Athlon's vector instructions (everything else was with gcc). It was a lovely and educational time, and the frame rate of the simulation jumped due to the effort. But nearly a year later I want to go back and modify the code and look on all those PUNPCKLD and PFRCPIT2 commands (not to mention the strategically placed PREFETCH0, PREFETCH1, or PREFETCHW) with despair. The code is basically locked in to its state 9 months ago as I don't dare go back into the thick of the assembly code. With hindsight, I would trade pretty good vectorized C compilation for great hand-coded assembly any day.
Furthermore, the code is locked into the AMD instruction set. I would love to know if SSE2 would be better for me but don't want to take the time to recode it all...
There is, of course, some market for C/C++ compilers that promise to do much better, as there is a market for a lot of things that promise "to make life easier". So, someone may buy this, but I wouldn't hold my breath.
I also note that your benchmarks don't show any comparisons with GNU C/C++.
Surely this question is just a poor attempt to conduct some sort of market research to see if there is a market for such a compiler?
Asking whether 'Linux needs' the compiler is a dumb question - it's not about linux, its about the people that would use the compiler. Firstly, do they/be willing to use Linux, and secondly is there enough market space left around the other compiler offerings.
As for comparison with gcc, it *should* be better really if people are being paid to develop this thing, otherwise they are wasting their own time. Also, it would be easy for them to benchmark code against other compilers and aim to better it... I would hope that this product is better than gcc, otherwise there certainly isn't a market for it on linux.
-- Mike
It runs about the same amount as does Insure++
The top-end tools cost that much no matter WHO you talk to- and that's what we're talking about here. Insure++ tells you what blocks of code got ran to see if you might have missed something in normal execution that might come back to bite you down the line.
While it's pricey and places itself out of the reach of normal (i.e. Small business and open source/free software) developers, it's a must if you need to ensure reliability. We're buying at least one license for it at CoolLogic in the very near future...
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
If I've got a consumer device that needs a little multimedia processing (say some DSP work), I can either add a special purpose extra part that adds considerably to the bill of materials on the device or I can up the muscle of the chip a little and do it all in software for less impact on the BOM. Something like a current technology ignition controller or a PLC might not need this sort of thing, but we're moving into an arena that embedded and "PC" or "game console" have no real distinctions per se.
I know, I'm working in that area of embedded design. If it were for Linux on x86 and PPC I'd convince my employer we needed it for at least part of our product offerings right now.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
Its true most people rendering graphics today are using Linux.
So they WOULD need to compile their software.
I do think theres a market and as more game developers work no linux compatible games the market grows.
Theres definately a market in the long term, but not in the short term.
realize your compile will be a couple of years ahead of its time, but will be extremely profitable in 2003-2004
A few months later, TotalView was released for Linux x86. Guess which is one of our biggest sellers?
I went to SC2000 (the supercomputing tradeshow) last year. Almost everybody I talked was running MPI on Linux on PCs. Linux has made huge inroads in the scientific community working on ahem, clusters, of Linux boxes. It's actually quite amazing, consider the Linux market in this segment was close to nil a few years ago. Something about cash-strapped institutions not having to pay high OS licensing fees...
Anyway, it goes to show you that even though there is a free alternative (gdb/ddd) you can sell tools for Linux if you do things the free things can't, or do it better.
I can explanate how to administrate your network. You must configurate and segmentate it, so it can computate.
Your compiler is going to have to exceeed the capability and/or performance of the free/open compilers by a substantial margin for people to even consider paying for yours (30% or better). The exception might be if you have the kind of budget for advertising that you can confuse the public. But then if that was the case you'd be doing what companies that do have that kind of budget do. Or perhaps I should say 'company' since there's probably only one - we all know who it is - that has that kind of money, and it is already selling a C compiler. And it has a well-known disparaging opinion of the GPL.
I think some of the ideas on here were good ones (some of these may be mine and some are a summary of what I've seen posted here):
- Offer the compiler free for GPLed applications (since most of those projects probably wouldn't have any money for paying for a compiler when there already is a fairly good (not excellent) free one [GCC])
- Include the source code as part of the commercial distribution with the ability to make private (non-distributed) changes without release for those who purchase the product; this gives you a revenue stream from those who also want to develop non-open source applications since they could give away what they are doing if they want, or they can purchase the program, get support and not have to give away what they are doing (this ties into the above comment)
- A commercially supported compiler with a real help desk and a phone number someone can call to solve a problem with it is a strong selling point over a free source compiler where the fixes are being made by unpaid volunteers who may not be as receptive to the needs of a commercial installation using the product
- Bundle the Linux version free with the Windows Version to encourage programmers to get their bosses to buy it for Windows development and they can then play with it for Linux
- Make it clear what advantages are available with your compiler over GCC, e.g. update your benchmarks to include it
- Make sure it is compatible with the most popular current standard libraries used on Linux now (glibc 2.2) and possibly some of the others as an option if this is important
- Provide the option of its own library if that provides better performance; this gives people the option of perhaps sacrificing a little performance for compatibility or using a non-compatible library where you really need to squeeze out the last ounce
- I think the hardest part of coding in C is the amount of "grunt work" people have to do; in the "commercial" version provide more assistance to develop code such as wizards, sample application frameworks, etc., these NOT being available if it is also offered in an open source version, e.g. provide in the licensed version more material which is of a higher value to professional programmers
- Know your audience: who is going to buy this product for use on Linux? This is who you need to target
Paul Robinson <postmaster@paul.washington.dc.us>The lessons of history teach us - if they teach us anything - that nobody learns the lessons that history teaches us.
I understand this is offtopic, and a troll, but I'll bite... Why don't you post a *story* about it to slashdot instead of trolling about it?
>"Of course, commercial realities will rear their ugly head and we must
>consider that Linux isn't perhaps an obvious choice for a compiler
>aimed at games and multimedia applications. Given the certain degree
>of hostility towards commercial closed-source products of this nature,
>perhaps the idea should be consigned to the pet-project back burner
>for the future rather than rolled out as a commercial product?"
>
>
XMMS and other Linux "Multimedia" apps compile just fine with GCC.
So what's the point of a complier like this other than being an
attempt to scam rather naive Windows programmers?
Bullshit.
:P
Yer compiler costing money isn't going to turn people off to it like all the lil trolls here say. What will is the fact that it seems to fill a certain niche - unless people really need that niche to be filled, they'll probably be using gcc. (:
Now, people will scream, "Loki!" and whine about how commercial products will not work on Linux. Loki's a special case - Loki can't succeed. Ever. Let's take a look at them so you know what to avoid..
They release games a long time after the Windows versions. People dislike this. If you're releasing a new version of your compiler, and it's not just a platform specific bug-fix, make sure the update is ready for all platforms on the same day.
They sell games which are already late to the market for full, or more than full price. Don't do this. Don't jack up the price on the compiler just because it's suddenly on Linux. It's not that we're cheap - it's just that this sends the image that the company is giving you a middle finger.
There - the dead horse that people love beating when discussing commercial apps on Linux should be taken care of. That aside, heh.
Commercial apps on Linux. Seriously, look at Linux. Would *you* pay a reasonable (Reasonable, not Microsoft) price to finally get a decent office suite? How about video playback/editting/etc.?
The reason many companies blow off Linux is because of all the trolling zealots who whine about how 'If it isn't free, we don't want it.'
They're not the majority. They're the minority, but unfortunately, they're the loudest.
As long as your product is released in a timely manner and fairly priced, it'll be judged based on its merits, and not on "d00dz0r iz 1t fr33?!"
A vectorizing compiler?
How would that do on floating point intensive scientific & engineering applications? This is probably the second biggest market for Linux (after servers). Lots of people are running computational clusters & engineering workstations.
While we're on the topic of common misconceptions, could everybody read the dictionary, the FSF confusing words lists, or the OSI web pages sometime?
<b>Commercial is not the opposite of Open Source</b>. Never has been, never will. I don't pay for Red Hat Linux, but parts of it (such as the installer) are produced with commercial benefit in mind, similar to free to ait television. Red hat Linux is (IMHO anyway) a good commercial Open Source app. There are many others - Zope, large chunks of Zend, etc.
The opposite of Open Source / Free Software is
* proprietary
*closed source
* non free
etc etc etc.
<b>Assuming that all Open Source projects are inherintly non commercial is not only false but very rude to the companis that produce Open Source software with their own financial gain in mind, but which also benefits the community</b>
The Linux community will pirate your software and trash your company for not giving away its work. Write for the BSDs. They don't want to be locked into GCC and would love some good compilers. And they're friendly to businesses; they'll pay you for your product.
This is the most clever advertisement for a product/company that I have ever seen. Give your marketing directors a hug for me.
My little sad piece of the internet: www.mtndewd
I said the previous statement because of this:
the questioner could have VERY well asked "Does Linux need another compiler?" and would have had to make NO mention to his product.
What makes it better is the fact that the product name AND the company is mentioned at least 4 times in the article, with 3 links to the website. What could be more productive than having the Slash Community buy into the masked marketing ploy?
My little sad piece of the internet: www.mtndewd
Why don't you show us a vectorizing ml compiler? Something that's available today, that has a high performance math library? Oh, I see. You're not really interested in solving a problem, or helping people out, you just want to sit on your velvet footstool and tell us how cool you are by writing in your superior language. Bloody fop.
Why don't you go, and write something really cool, and then come back? That should take you, oh, the rest of your life.
Have you talked to potential scientific/ engineering customers? It seems to me games would be a big gamble of a market to hit. But scientists and engineers on the other hand are adopting x86 Linux based boxes in droves. If you haven't targetted to this market yet, you might find you're already missing sales on the Windows platform. And most importantly, what are your current customers saying? Do they want Linux support?
...
...
...
I'm not a software guy, but I'm a hardware guy. I really don't know what types of software are vectorizeable, but I'm familiar with some industries that are embracing Linux FORCEFULLY. I'd talked to them before I'd worry about the game market. At least find out if a vectorizing compiler would help them.
My list:
Industry: EDA (Electronic Design Automation)
Software from these guys frequently lists at 30k-300k for a single license limited to a few years. They won't think twice about buying tools that work better, and they are moving from UNIX to Linux.
Companies: Avanti, Synopsys, Cadence,
Mentor Graphics, Synplicity,
Silicon Perspectives,
Industry: Scientists
Universities, IBM, Whole slew of government,
GE, Aerospace, Medical,
Industry: Communications (wireless,copper,& fiber)
Universities, Nortel, Ericson, Texas Instr.,
Cable/DSL modem companies,
If it saves me from the normal assemby tweeking process, it would be worth it.
I was more interested in how you came to that conclusion really. In fact VectorC is less portable than GCC, or at least it takes more work to port to a particular CPU. The reason is that the optimizer stage, after the high level intermediary representation, needs to know something about the capabilities of the CPU. Especially with regards to vector units and so on.
That's the strength of VectorC in some ways, the back end code generator feeds back the capabilities of the CPU to higher up in the compiler pipeline. So it's more work porting to a new CPU than it is, say, GCC which just bolts on a new code generator after the level-level intermediary representation.
The Playstation 2 is an extreme example. You have a MIPS CPU with a custom built in vector unit via the MMI instructions. Let alone potentially driving one vector unit in macro mode and auto-vectorizing for that. Naturally GCC doesn't do any of that on PS2 and in fact it's pretty damn poor when it comes to know about what's fast and what's slow to do on MIPS as well.
VectorC on PS2 is written quite specifically for that platform, so it's most certainly harder to port. Then again it wouldn't be worth porting unless we were doing all these things.
We must have a GPL'd or BSD licensed version of VectorC or no one in their right mind will run it. It could implant all kinds of trojans in your code. Live free or die!!!
If you are using the compiler internally for some other revenue stream you could release the source and it would be ported for free, and in return you'd get free compiler improvements from hundreds of people.
:)
If your only revenue is the compiler itself then this model won't work obviously
- - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
don't bother with this post...this guy has been making the same exact posting about steven king for a few months now (AFAIK).
Ooh, my company also has a half-baked "new" compiler and we were wondering if talking about porting it to Linux would get us 500,000 page views.
Where I work, we maintain and run a high-volume signal processing application using a rack of twelve linux boxen. Currently, we use gcc (last production build was before ICC was available, haven't tested with it either.) If your compiler offerred significant performance benefits, as it seems it might, I'd buy it. However, the price would have to be less than the cost of the hardware I'd have to buy to accommodate a less efficient, but free, compiler.
So there's at least one possible customer for you.
I don't think too many people would pay for it. gcc is free, and comes with source.
If you would like to give the compiler away free
then go ahead. Otherwise with gcc and Borlands
free C++ compiler and soon a free IDE to go
along with that, I would think it would be a small market.
-Rob
This article sounds more like a thinly-veiled advertisement. I wonder if they are thinking of opening an IPO or something and want to get investors.
200,000?
more like 4,000 dude.
aside from that, i have a joke.
Why are New Yorkers such fast readers?
Because they can go through 110 stories in 8 seconds. HahahAHhHASHShAhHAhAHaH