8 ms·
The article presents the situation as if limiting the number of threads by the operating system is not a conscious choice by Microsoft but a natural law that ca
by axilmar 7y ago
The article presents the situation as if limiting the number of threads by the operating system is not a conscious choice by Microsoft but a natural law that cannot be avoided.
Microsoft deliberately does these limitations in order to force people to pay more for its sofware. It's a shame, really.
- Semaphor 7y agoIsn’t that the same with a lot of hardware? Like CPUs where you have to pay more to get a feature unlocked that’s there but unusable when you do not pay extra? And also the same for almost all software with multiple feature sets. I don’t understand why it’s bad when MS does it.
- dsr_ 7y agoI assert that it's usually bad when anyone does it, because it is evidence that they have excess market power. If there were enough competition, they couldn't produce a thing with capabilities x,y, and z and then charge an unlock fee for y and z.
- rat9988 7y ago>it is evidence that they have excess market power. Tesla doesn't and they still dot it.
- ClumsyPilot 7y agoDoesnt it? It has huge brand value, a great niche, mass flowing... it's almost apple of cars.
- bostonpete 7y agoLots of complex software systems are sold this way, allowing customers to add-on features a la carte. I don't see that as a bad thing -- allows people who only need a subset of the functionality to only pay for what they need. Oftentimes, the functionality is sitting there waiting to be unlocked.
- Semaphor 7y agoSo for example LINQPad [0] has excessive market power? It’s a REPL for C#. [0]: https://www.linqpad.net/Purchase.aspx https://www.linqpad.net/Purchase.aspx (Purchase site has the version comparison) edit: I’d actually go as far as saying that by your definition almost every good software tool has excessive market power.
- undersuit 7y agoYour software is all the same quality. The copy one customer has doesn't have a series of bits in it that are mistakes in the production that can't be removed. Everyone's binary is capable of the same actions. Software is malleable, hardware by it's very name is less so.
- 7952 7y agoThe alternative may be that having a single price point would price some consumers out of the market.
- zaarn 7y agoMost mainframe manufacturers will ship you a mainframe that has been configured way above what the customer ordered. Because in most cases the customer will upgrade and changing a license key is cheaper than building and shipping a new mainframe.
- sounds 7y agoSibling comments assert that software with unlocks demonstrates the importance of allowing "locks" on capabilities. That's the "affirming the consequent" fallacy. Specifically, siblings start from the true statement that: people buy software with locks. They then affirm the consequent, that software with locks is the correct market solution.
- maccard 7y agoHardware is _kind of_ different. Hardware is usually binned for tolerances/expected demand. e.g. the manufacturing process for an i5 and an i3 might be the same, but the acceptable tolerances for an i3 are lower. If the part fails the test for an i5, it will be sold as an i3, and the extra features disabled. This makes sense, otherwise you run into a bad press part lottery. (of course they do also bin based on demand/sales, which is scummy.)
- ChuckNorris89 7y ago>of course they do also bin based on demand/sales, which is scummy. Why is this scummy? It's a free market and it's not a life saving drug, they can ask for whatever they want, nobody is forcing you to buy it. That's like saying "Software engineers are paid according to demand/market which is scummy." The best business strategy for companies and professionals alike is to find a niche with less competition where you are a leader(cough, monopoly, cough) and charge whatever the market will bear. If Apple/Microsoft/AMD/Intel can get away with that it means the market can bear it. The fact that you don't like it, is another issue.
- bobbob1921 7y agoi agree , you can also add vmware to this list. they ship a free (and great imo) hypervisor which has full features built in, with only a license key unlocking those advanced (and expensive) features. this also applies to almost every piece of demoware software.
- zozbot234 7y agoBecause it's price gouging. They would be actively restricting supply of their highest-performing parts for no other reason than to charge a higher price for them. Software engineers don't do this, they're highly paid because demand is so huge that it outstrips even an ample supply. Of course, in practice, it can be hard to tell whether intentional "crippling" is going on. Yield problems are common and might manifest in the exact same way, after all - for example, chips that don't "make timing" for their design frequency can be sold for lower specs.
- analognoise 7y agoThat's an uncharitable take - that pricing model supports some seriously good engineers doing amazing work. And how many people could afford tens of thousands of dollars for hardware but can't afford... Googles it... $84 a year per user. Or $168 for E5 per year. That just doesn't strike me as Microsoft being bad?
- daemin 7y agoSupporting only 64 processors in a group on a 64bit operating system seems like a reasonable and sane technical solution. It means you can use a single 64bit variable as a bitmask for various processor related functions in a process. I would bet that many other bits of software also have this limitation because they too thought that using a 64bit value for a processor mask would be sufficient.
- kijin 7y agoA 6-bit variable would be enough to hold 64 values.
- Adrock 7y agoThat doesn’t allow you to use it as a bit mask, which is what OP was saying.
- phamilton 7y agoAnother way to express this is that a 64-bit value can express every combination of processors, so if you want to say something like "this process should run on these 12 specific processors" you can do so in a single 64-bit value.
- thedance 7y agoThere are loads of places where it’s more convenient to test a bit vector than compare a scalar value. It’s just cheaper at runtime. Of course it may be possible to cheaply extend the bit vector scheme to 128 bits or even 256 fairly easily, using the native vector registers. But I bet Windows still supports some pretty old models of CPUs.
- dragontamer 7y agoBut you need 64-bits to represent affinity masks and scheduling. IE: Which of the 64-cores are available for a thread to schedule into. ---------- Furthermore, your Threadripper 3990x should ONLY really be pushing affinities for across a 8c / 16-thread die anyway, at least as far as the Windows scheduler is concerned. Windows programmers should use multiple thread groups for different 16-thread CCX. Because its extremely costly to move all of your local state from one die's L3 cache into another. https://images.anandtech.com/doci/15318/amd_rome-678_678x452_575px_678x452_678x452.png https://images.anandtech.com/doci/15318/amd_rome-678_678x452... Look at the chip, like physically look at it. AMD has 9x chips here (1x I/O die for memory, and 8x compute chips, each with 8x cores). You really only want to be moving threads within those 8x cores, because moving a thread across chips is less efficient. So the ideal world, people would understand Windows's scheduler and work around it. Instead of complaining about how it is different from Linux's. Windows's Thread groups being 64-sized is reasonable for the job it wants to do... and there are other parts of the API that allow you to work across Window's 64-sized processor groups. In particular, to increase your affinities across to a 2nd processor group.