Ah. I think my wording may have been bad. Read the last sentence as, "It's all about daily experience and contact with people from a variety of backgrounds." I was trying to make the point that people from the city often have difference perspectives that people from the suburbs. That's a wide generalization but often true in my experience.
They weren't joking. The rest of the people back there were nodding with them.
Nodding is done to signal a lot of things. More likely than not in this case, others were nodding because they understood the predicament these people were in. Poor people understand poor people. I very much doubt they or anyone else but you took their comments as a serious plan to put into action. As a city resident, I and other city dwellers probably interpret such things very differently than how you see them from your suburban perspective. It's all about daily experience and contact with people.
Which 10 bus? There is more than one. Metro Transit generally does a very good job maintaining its fleet IME.
94 bus are both foul
Interesting. I've never ever had a bad experience on the 94. Not saying you didn't but it's just beyond my experience. I find it very hard to believe that two people would openly talk about committing crimes on the bus, especially on the 94 which is full of commuters. They were probably joking. For some odd reason, poor people like to do that. Something to do with maintaining sanity and not falling into a deep depression, I think.
language is of no concern to me and shouldn't be to any adult
Wait until you have kids and want to bring them on the bus. Language matters a lot.
My opinion is that their projected ridership numbers were very, very low.
That's your opinion. Ridership projections go through enormous scrutiny at the federal level. Any transit project goes though orders of magnitude more study and justification than any road project. This is, of course, by design.
The service level provided by the opt-outs are far and away superior in every. single. way. to MT for the majority needs of the public at this point.
Yet they do not provide the suburb-suburb service you say is critical. Metro Transit carries the vast majority of ridership in the area, so it seems the public has opted for it over the opt-outs. It's insane to have the number of transit providers we do in the Twin Cities. It's wasteful and it results in parochialism which simply means certain needs go unmet.
Ride an MVTA or SWT bus and then a MT bus
I've ridden both. I have found in both cases the quality of service is pretty variable. I've met extremely welcoming, happy, helpful Metro Transit drivers and downright nasty MVTA drivers. I've ridden in very comfortable Metro Transit buses and MVTA buses that looked to be about 15 years old.
Personally I prefer my silent, low cost, express transit without being scowled at, fearing for my safety, and wondering if I won't get run over as the bus tries to make its next stop.
I hear this sort of thing a lot but it just doesn't ring true to my experience. I ride urban Metro Transit routes all the time and I have never feared for my safety. In fact I've quite enjoyed observing and learning how people from other areas of the city, different ethnic backgrounds, etc. live and interact. I find it quite fun, actually. Now, that doesn't mean things can't improve. I wish drivers would be more proactive at booting people off the bus when they use foul language. That's my #1 beef. I have in fact witnessed drivers doing that, but not enough. Typically the offenders are teenagers of every race and class and we all know that teenagers like to present an overinflated view of themselves. Their behavior can be offensive and downright weird at times, but nothing one wouldn't see in any high school.
The opt outs, primarily providing commuter service, don't have a lot of teenage riders. I think that has something to do with the social experience. I haven't ridden it a lot but I wouldn't be surprised if the BE line (one of the few suburb-suburb opt-out providers) has a similar ridership profile to Metro Transit and a similar rider experience.
I think it's a bad idea and it will not do what they think it will in the least.
I tend to agree but perhaps not as stridently. BRT has worked in limited cases (Brazil is often cited) but it has nowhere near the power of rail.
I don't live in Portland but where I do live (MSP) that wouldn't work at all. Why? Because of the way the metro area has developed and how the natural landscape exists, it would be costly and ineffective.
I've worked on Twin Cities transit issues for nearly a decade, so this comes from long experience.
You've got a few bits of information wrong. Rail has in fact worked very well here in MSP. The Hiawatha line is outperforming every predicted metric. Northstar is underperforming for a few reasons. It was only built to Big Lake, so it misses the large ridership pool in St. Cloud. It opened right as the recession started. Commuter rail is for commuters. People were losing jobs so fewer commuters = lower ridership. I also believe commuter rail may not be the best fit here because we haven't sprawled out enough. Most people don't yet drive 30 miles or more to work. LRT/BRT should be able to capture a great majority of commuters. And BTW, Northstar's numbers are rising. But they will probably fall again as we enter a double-dip recession.
You are right about the suburb-suburb need. That's a big hole in the system. Unfortunately, the suburbs kicked out Metro Transit when they decided to go the opt-out route and the opt-outs don't seem interested in providing suburb-to-suburb service. They probably can't figure out who should pay for what. This is why opt-outs are a bad idea. A regional transit system should have one regional transit provider that can design the system most effectively.
An area doesn't need super-high density for rail to work. LRT works very well in Dallas (Dallas!), Salt Lake City and many other medium-sized metro areas that have a similar development history to the Twin Cities.
There is quite a extensive plan for transitways in the Twin Cities. We have Hiawatha, Central Corridor is under construction. Southwest is not too far behind. Cedar/35-W BRT is under development (haltingly, it seems). Bottineau is well into planning and Gateway is starting up.
Dakota county is getting BRT because that's what your elected officials wanted. Only recently has the county board begun to get a clue about the economic development driver that rail is. Your state legislators are hopeless. Holberg, Gerlach and company are rabidly anti-transit. You guys barely got even BRT in spite of them. The money goes to those who fight for it and so far Hennepin and Anoka counties have been the most vocal and active about wanting it. The entire east metro has dropped the ball on both developing transit ridership and strongly demanding a bigger slice of the pie.
Solar and wind are already economical. We have plenty of wind farms here in Minnesota. We're looking at putting solar on the house and were surprised by the low price. The payoff point is something like five years out, not bad at all for this kind of investment. The key to making it work is to conserve energy. Removing phantom loads gains you a significant decrease in energy use. Germany is the world's largest user of solar power and they have fewer days of sun than most everywhere in the U.S.
Nuclear certainly has a place and the U.S. has got to get over the fear of investing in it. But it's not a panacea. It uses a non-renewable resource and we do still have to solve the waste problem. Recycling will help but it's not a complete solution.
But that's not really replacing the Visitor pattern, is it? There is no double-dispatch in the lambda example. Thus I can't pass around a Visitor object and invoke it on arbitrary objects. I must pass around a concrete lambda. This is certainly useful in some cases but what it's really replacing is a struct of operations, not a full-blown Visitor.
You know, I hear that a lot, but looking at the code the compilers actually generate... it's not evidently the case. Concrete example: I am presently in the middle of a very large image processing project which uses the GCC compiler for objc and c.
gcc is not a terribly good optimizing compiler, particularly for things like image processing. Try the same code with the Intel compiler or PGI.
Constant reuse of single registers, as if the CPU only *had* one or two usable registers
There's a register-pressure tradeoff being made here. Reusing registers like this lowers the register pressure of the code, reducing spilling. The other extreme is to round-robin the register allocator which allows more scheduling freedom at the cost of inducing more spilling.
thrashing variables on and off the stack
Register allocation is a hard problem. It's NP-complete. Can one "eyeball" some asm in specific cases that will outperform the compiler? Sure. But over a large amount of code, a good compiler will win and will save the programmer time.
It's not? RAII is important to anyone concerned about resource use.
To "express" this functionality, I check my allocations, I check my return codes and states, I make sure I provide same, I only do new things based on the known state of things I've already done, and I set up state-testing, abort-capable monitors for operations that might conceivably go open-ended.
So you do everything manually that RAII provides for free.
I try really, really hard to never use other people's code for which I don't have control of the source.
Code reuse is not valuable to you?
Then I test the living heck out of things.
As we all do.
And this all leads to release-level programs that don't die by exception in the first place, therefore eliminating the need for a program level mechanism to "save" me due to exceptions.
RAII is about more than just exceptions. RAII is about reasoning in the problem domain rather than in the swamp of details. It makes code simpler and clearer. It makes resource ownership and lifetime explicit. But even if it were just about exceptions, no amount of testing can guarantee that software will never fail. There must always be contingencies to handle failures. In the presence of exceptions, RAII helps manage that. But RAII is used for a lot more than exception safety.
For me, the new language features should be added, but their usage should correlate to being able to solve a problem better or faster, or more completely, or something like that.
The C++ committee agrees with you. The sentiment is correct. I would like the GP to explain which new features he/she thinks are unnecessary. Otherwise it is just ranting.
If that's the point of the FQA, it has already disqualified itself as a useful source of information. These sorts of documents shouldn't be written with a partticular goal in mind. They should be an objective assessment of what's right and what's wrong with the subject.
The general theme is correct though, down to the technical details.
No, it isn't. A lot of that "feature drift" you talk about is exactly the set of things added to C++ to address its shortcomings.
Proper utilization of lambdas and closures pretty much make a lot of design patterns (template, strategy, visitor, for example) unnecessary in many contexts.
I love lambdas but I don't have a lot of experience using them in large projects. I use the Visitor pattern a lot so I'm really curious to learn how lambdas can be used to avoid it. Can you post an example? Thanks!
But... until then, I honestly don't think there is anything really worthwhile I could do in c++ that I can't do in c
RAII. That's a tremendously important idiom that simply cannot be expressed in C.
When I depend on the compiler to write part of the code for me, I'm going to get mediocre performance from a one-size-fits-all model without any real option to do anything about it.
One can always write "C-like" code in C++ but the result will probably exhibit worse performance. Compilers are actually quite smart. It's often programmers being "helpful" to the compiler that screw things up. A classic example is using unsigned integers for loop counters. No, the compiler actually doesn't care that it can "see" the loop counter will never be less than zero but it absolutely does care that it might wrap around due to overflow.
No, they do not. They don't cover most local expenses. They do not fund schools or pave local and state roads. That's why we have sales and property taxes.
They are a working example of why too much socialism in government is bad.
On the contrary, California is a working example of the disaster that is libertarianism. It demonstrates quite effectively the utter failure of government by referendum.
I do find it odd that a company that has 0% impact on the state social services, roads (the local delivery company pays taxes for them), or schools
How do you figure? Amazon benefits mightily from the literacy and general ability to function in society provided by schools. It benefits from people being able to travel around to jobs and obtain income. It benefits from the network infrastructure that provides the portal to customers. The list goes on. Amazon benefits from the fact that civilization exists. Ergo, it benefits from taxes it collects and forwards to the state.
The city I live in has offered several retailers (like Costco) an exemption from the cities portion of the sales tax in exchange for coming into the city and creating more jobs, this is the way to go. We get people from neighboring cities who shop here because it has more shopping stores and lower prices. Another city near us has a similar deal with a shopping mall.
Classic race to the bottom. This is how southeast Michigan ended up they way it did. What you're saying here is that Costco gets a free ride from the city and because of that, Costco draws business away from other stores, further degrading sales tax receipts. Soon every business will ask for similar exemptions in the name of "fairness" or some other such nonsense and before you know it, your streets are crumbling.
No, this is terrible public policy. We should not strangle ourselves in the name of job creation. We should instead create a good business climate by investing in public infrastructure. That takes taxes and has been shown over and over again to spur many more jobs than any tax cut ever has.
Hopefully this will spark a trend around the nation. Internet retailers have been subsidized by the public for too long. It's time for them to operate on a level playing field with everyone else. They use the infrastructure and services states supply; they should help pay for it.
I think with true CPU integration you wouldn't even have the kernels. You'd be branching and looping on the CPU and then calling the individual GPU instructions right then and there.
Sure, if you have a vector ISA. But we're not there yet with Fusion. I very much expect we will see something like this in the near future. Larrabee is a peak at that. It's a mostly-cool vector ISA with a few real WTFs thrown in for nostalgia.:)
Typically a compute kernel will spend a bit of time on the GPU, so the cost of a single transaction to start it and possibly another to do cleanup can be amortized away fairly well. Fusion will get rid of the data transfer cost which is a huge win. Will the shared memory system be able to feed the vector unit? Probably given the mid/low end GPU parts being used today.
I think we will see much more synergy among these architectures. Architects know how to build vector systems that are more general-purpose than GPUs and retain almost all of the memory bandwidth and computational throughput. But the memory controllers to do it have been prohibitively costly for consumer-grade hardware. Maybe that changes given the new normal of continuing Moore's law coupled with stagnant clock rates. We have more transistors than we know what to do with.
The memory system architecture of a GPU is quite a bit different from a CPU. It is optimized for streaming operations, which is how it can feed a massive vector unit. The ISA is the easy part -- anyone can design a decent vector ISA. Feeding it is the real problem.
Ah. I think my wording may have been bad. Read the last sentence as, "It's all about daily experience and contact with people from a variety of backgrounds." I was trying to make the point that people from the city often have difference perspectives that people from the suburbs. That's a wide generalization but often true in my experience.
Ok...that was out of left field.
They weren't joking. The rest of the people back there were nodding with them.
Nodding is done to signal a lot of things. More likely than not in this case, others were nodding because they understood the predicament these people were in. Poor people understand poor people. I very much doubt they or anyone else but you took their comments as a serious plan to put into action. As a city resident, I and other city dwellers probably interpret such things very differently than how you see them from your suburban perspective. It's all about daily experience and contact with people.
The 10 bus, which smells like urine
Which 10 bus? There is more than one. Metro Transit generally does a very good job maintaining its fleet IME.
94 bus are both foul
Interesting. I've never ever had a bad experience on the 94. Not saying you didn't but it's just beyond my experience. I find it very hard to believe that two people would openly talk about committing crimes on the bus, especially on the 94 which is full of commuters. They were probably joking. For some odd reason, poor people like to do that. Something to do with maintaining sanity and not falling into a deep depression, I think.
language is of no concern to me and shouldn't be to any adult
Wait until you have kids and want to bring them on the bus. Language matters a lot.
My opinion is that their projected ridership numbers were very, very low.
That's your opinion. Ridership projections go through enormous scrutiny at the federal level. Any transit project goes though orders of magnitude more study and justification than any road project. This is, of course, by design.
The service level provided by the opt-outs are far and away superior in every. single. way. to MT for the majority needs of the public at this point.
Yet they do not provide the suburb-suburb service you say is critical. Metro Transit carries the vast majority of ridership in the area, so it seems the public has opted for it over the opt-outs. It's insane to have the number of transit providers we do in the Twin Cities. It's wasteful and it results in parochialism which simply means certain needs go unmet.
Ride an MVTA or SWT bus and then a MT bus
I've ridden both. I have found in both cases the quality of service is pretty variable. I've met extremely welcoming, happy, helpful Metro Transit drivers and downright nasty MVTA drivers. I've ridden in very comfortable Metro Transit buses and MVTA buses that looked to be about 15 years old.
Personally I prefer my silent, low cost, express transit without being scowled at, fearing for my safety, and wondering if I won't get run over as the bus tries to make its next stop.
I hear this sort of thing a lot but it just doesn't ring true to my experience. I ride urban Metro Transit routes all the time and I have never feared for my safety. In fact I've quite enjoyed observing and learning how people from other areas of the city, different ethnic backgrounds, etc. live and interact. I find it quite fun, actually. Now, that doesn't mean things can't improve. I wish drivers would be more proactive at booting people off the bus when they use foul language. That's my #1 beef. I have in fact witnessed drivers doing that, but not enough. Typically the offenders are teenagers of every race and class and we all know that teenagers like to present an overinflated view of themselves. Their behavior can be offensive and downright weird at times, but nothing one wouldn't see in any high school.
The opt outs, primarily providing commuter service, don't have a lot of teenage riders. I think that has something to do with the social experience. I haven't ridden it a lot but I wouldn't be surprised if the BE line (one of the few suburb-suburb opt-out providers) has a similar ridership profile to Metro Transit and a similar rider experience.
I think it's a bad idea and it will not do what they think it will in the least.
I tend to agree but perhaps not as stridently. BRT has worked in limited cases (Brazil is often cited) but it has nowhere near the power of rail.
I don't live in Portland but where I do live (MSP) that wouldn't work at all. Why? Because of the way the metro area has developed and how the natural landscape exists, it would be costly and ineffective.
I've worked on Twin Cities transit issues for nearly a decade, so this comes from long experience.
You've got a few bits of information wrong. Rail has in fact worked very well here in MSP. The Hiawatha line is outperforming every predicted metric. Northstar is underperforming for a few reasons. It was only built to Big Lake, so it misses the large ridership pool in St. Cloud. It opened right as the recession started. Commuter rail is for commuters. People were losing jobs so fewer commuters = lower ridership. I also believe commuter rail may not be the best fit here because we haven't sprawled out enough. Most people don't yet drive 30 miles or more to work. LRT/BRT should be able to capture a great majority of commuters. And BTW, Northstar's numbers are rising. But they will probably fall again as we enter a double-dip recession.
You are right about the suburb-suburb need. That's a big hole in the system. Unfortunately, the suburbs kicked out Metro Transit when they decided to go the opt-out route and the opt-outs don't seem interested in providing suburb-to-suburb service. They probably can't figure out who should pay for what. This is why opt-outs are a bad idea. A regional transit system should have one regional transit provider that can design the system most effectively.
An area doesn't need super-high density for rail to work. LRT works very well in Dallas (Dallas!), Salt Lake City and many other medium-sized metro areas that have a similar development history to the Twin Cities.
There is quite a extensive plan for transitways in the Twin Cities. We have Hiawatha, Central Corridor is under construction. Southwest is not too far behind. Cedar/35-W BRT is under development (haltingly, it seems). Bottineau is well into planning and Gateway is starting up.
Dakota county is getting BRT because that's what your elected officials wanted. Only recently has the county board begun to get a clue about the economic development driver that rail is. Your state legislators are hopeless. Holberg, Gerlach and company are rabidly anti-transit. You guys barely got even BRT in spite of them. The money goes to those who fight for it and so far Hennepin and Anoka counties have been the most vocal and active about wanting it. The entire east metro has dropped the ball on both developing transit ridership and strongly demanding a bigger slice of the pie.
Solar will work just fine in the Northeast U.S. It gets more sun than Germany, the world's largest user of solar.
Solar and wind are already economical. We have plenty of wind farms here in Minnesota. We're looking at putting solar on the house and were surprised by the low price. The payoff point is something like five years out, not bad at all for this kind of investment. The key to making it work is to conserve energy. Removing phantom loads gains you a significant decrease in energy use. Germany is the world's largest user of solar power and they have fewer days of sun than most everywhere in the U.S.
Nuclear certainly has a place and the U.S. has got to get over the fear of investing in it. But it's not a panacea. It uses a non-renewable resource and we do still have to solve the waste problem. Recycling will help but it's not a complete solution.
But that's not really replacing the Visitor pattern, is it? There is no double-dispatch in the lambda example. Thus I can't pass around a Visitor object and invoke it on arbitrary objects. I must pass around a concrete lambda. This is certainly useful in some cases but what it's really replacing is a struct of operations, not a full-blown Visitor.
Still, thanks for the example!
You know, I hear that a lot, but looking at the code the compilers actually generate... it's not evidently the case. Concrete example: I am presently in the middle of a very large image processing project which uses the GCC compiler for objc and c.
gcc is not a terribly good optimizing compiler, particularly for things like image processing. Try the same code with the Intel compiler or PGI.
Constant reuse of single registers, as if the CPU only *had* one or two usable registers
There's a register-pressure tradeoff being made here. Reusing registers like this lowers the register pressure of the code, reducing spilling. The other extreme is to round-robin the register allocator which allows more scheduling freedom at the cost of inducing more spilling.
thrashing variables on and off the stack
Register allocation is a hard problem. It's NP-complete. Can one "eyeball" some asm in specific cases that will outperform the compiler? Sure. But over a large amount of code, a good compiler will win and will save the programmer time.
RAII is not important to me
It's not? RAII is important to anyone concerned about resource use.
To "express" this functionality, I check my allocations, I check my return codes and states, I make sure I provide same, I only do new things based on the known state of things I've already done, and I set up state-testing, abort-capable monitors for operations that might conceivably go open-ended.
So you do everything manually that RAII provides for free.
I try really, really hard to never use other people's code for which I don't have control of the source.
Code reuse is not valuable to you?
Then I test the living heck out of things.
As we all do.
And this all leads to release-level programs that don't die by exception in the first place, therefore eliminating the need for a program level mechanism to "save" me due to exceptions.
RAII is about more than just exceptions. RAII is about reasoning in the problem domain rather than in the swamp of details. It makes code simpler and clearer. It makes resource ownership and lifetime explicit. But even if it were just about exceptions, no amount of testing can guarantee that software will never fail. There must always be contingencies to handle failures. In the presence of exceptions, RAII helps manage that. But RAII is used for a lot more than exception safety.
For me, the new language features should be added, but their usage should correlate to being able to solve a problem better or faster, or more completely, or something like that.
The C++ committee agrees with you. The sentiment is correct. I would like the GP to explain which new features he/she thinks are unnecessary. Otherwise it is just ranting.
Would it be too much to define something like int16 or int_16?
#include <cstdint>
The point is that the language sucks.
If that's the point of the FQA, it has already disqualified itself as a useful source of information. These sorts of documents shouldn't be written with a partticular goal in mind. They should be an objective assessment of what's right and what's wrong with the subject.
The general theme is correct though, down to the technical details.
No, it isn't. A lot of that "feature drift" you talk about is exactly the set of things added to C++ to address its shortcomings.
Proper utilization of lambdas and closures pretty much make a lot of design patterns (template, strategy, visitor, for example) unnecessary in many contexts.
I love lambdas but I don't have a lot of experience using them in large projects. I use the Visitor pattern a lot so I'm really curious to learn how lambdas can be used to avoid it. Can you post an example? Thanks!
But... until then, I honestly don't think there is anything really worthwhile I could do in c++ that I can't do in c
RAII. That's a tremendously important idiom that simply cannot be expressed in C.
When I depend on the compiler to write part of the code for me, I'm going to get mediocre performance from a one-size-fits-all model without any real option to do anything about it.
One can always write "C-like" code in C++ but the result will probably exhibit worse performance. Compilers are actually quite smart. It's often programmers being "helpful" to the compiler that screw things up. A classic example is using unsigned integers for loop counters. No, the compiler actually doesn't care that it can "see" the loop counter will never be less than zero but it absolutely does care that it might wrap around due to overflow.
No, they do not. They don't cover most local expenses. They do not fund schools or pave local and state roads. That's why we have sales and property taxes.
They are a working example of why too much socialism in government is bad.
On the contrary, California is a working example of the disaster that is libertarianism. It demonstrates quite effectively the utter failure of government by referendum.
I do find it odd that a company that has 0% impact on the state social services, roads (the local delivery company pays taxes for them), or schools
How do you figure? Amazon benefits mightily from the literacy and general ability to function in society provided by schools. It benefits from people being able to travel around to jobs and obtain income. It benefits from the network infrastructure that provides the portal to customers. The list goes on. Amazon benefits from the fact that civilization exists. Ergo, it benefits from taxes it collects and forwards to the state.
Troll? How interesting. Apparently the bar is set pretty low these days.
The city I live in has offered several retailers (like Costco) an exemption from the cities portion of the sales tax in exchange for coming into the city and creating more jobs, this is the way to go. We get people from neighboring cities who shop here because it has more shopping stores and lower prices. Another city near us has a similar deal with a shopping mall.
Classic race to the bottom. This is how southeast Michigan ended up they way it did. What you're saying here is that Costco gets a free ride from the city and because of that, Costco draws business away from other stores, further degrading sales tax receipts. Soon every business will ask for similar exemptions in the name of "fairness" or some other such nonsense and before you know it, your streets are crumbling.
No, this is terrible public policy. We should not strangle ourselves in the name of job creation. We should instead create a good business climate by investing in public infrastructure. That takes taxes and has been shown over and over again to spur many more jobs than any tax cut ever has.
Hopefully this will spark a trend around the nation. Internet retailers have been subsidized by the public for too long. It's time for them to operate on a level playing field with everyone else. They use the infrastructure and services states supply; they should help pay for it.
I think with true CPU integration you wouldn't even have the kernels. You'd be branching and looping on the CPU and then calling the individual GPU instructions right then and there.
Sure, if you have a vector ISA. But we're not there yet with Fusion. I very much expect we will see something like this in the near future. Larrabee is a peak at that. It's a mostly-cool vector ISA with a few real WTFs thrown in for nostalgia. :)
Typically a compute kernel will spend a bit of time on the GPU, so the cost of a single transaction to start it and possibly another to do cleanup can be amortized away fairly well. Fusion will get rid of the data transfer cost which is a huge win. Will the shared memory system be able to feed the vector unit? Probably given the mid/low end GPU parts being used today.
I think we will see much more synergy among these architectures. Architects know how to build vector systems that are more general-purpose than GPUs and retain almost all of the memory bandwidth and computational throughput. But the memory controllers to do it have been prohibitively costly for consumer-grade hardware. Maybe that changes given the new normal of continuing Moore's law coupled with stagnant clock rates. We have more transistors than we know what to do with.
The memory system architecture of a GPU is quite a bit different from a CPU. It is optimized for streaming operations, which is how it can feed a massive vector unit. The ISA is the easy part -- anyone can design a decent vector ISA. Feeding it is the real problem.