tag:blogger.com,1999:blog-8291547.post2315884192190713527..comments2019-12-21T03:00:07.201-05:00Comments on Design Decisions: 7 Reasons Every Programmer Should Love Multi-Corestuddugiehttp://www.blogger.com/profile/07091225955159043360noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-8291547.post-51191361831767329882007-10-23T18:02:00.000-04:002007-10-23T18:02:00.000-04:00After reading Anonymous' and JeffH0821's comments ...After reading Anonymous' and JeffH0821's comments I'm a bit perplexed about where I lost them. Maybe my aberrant sense of humor and sarcastic wit [or lack thereof] is being viewed as statements of fact. Highly technical discussions are god awful boring. This is my personal blog and I'm not particularly interested in publishing white papers here. At the same, I firmly believe it is possible to have a technical discussion and be humorous. So I stand by the parts that are not humor because I have the experience [in production environments] to back it up. That said, the fact remains, I've lost and/or confused my reader(s) and that was not my intention. So I've made some minor changes to the original entry. The most important (I think) is adding the <EM>humor</EM> label/tag to the entry. So when I say, being smarter than millions is reason enough to learn shared memory concurrent programming, just know I'm joking. Unless, of course, you really feel that way. In which case, more power to ya!<BR/><BR/>I'm posting a new entry which I hope will clarify things for Anonymous and JefH0821 and any other who didn't "get it". It is located <A HREF="http://designdecisions.blogspot.com/2007/10/7-repslm-c-expanded.html" REL="nofollow">here</A>.studdugiehttps://www.blogger.com/profile/07091225955159043360noreply@blogger.comtag:blogger.com,1999:blog-8291547.post-73944312647281619442007-10-23T16:51:00.000-04:002007-10-23T16:51:00.000-04:00"These days no one even bothers to invent a langua..."These days no one even bothers to invent a language that doesn't have garbage collection."<BR/>And these days all these news languages are written in C and so is linux and any performance oriented application.<BR/>Memory management is not hard, it's just a question of discipline.<BR/>And same same goes with multi-threading.<BR/>The reasons some people find 'dynamic' memory difficult is the same reason they have trouble grasping the concept of race condition: they just don't understand how their computer really works.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8291547.post-27051633010012770352007-10-23T15:25:00.000-04:002007-10-23T15:25:00.000-04:00Even though GUI applications might only take 1% CP...Even though GUI applications might only take 1% CPU, making them multi-threaded can improve responsiveness, if done right. Its only really necessary if you are doing some sort of background processing that you don't want to interfere with the user experience.<BR/><BR/>As for the heavy lifting processing work, like a ray-tracer or AI it can be a big win. Unfortunately, it is hard to get right. It really isn't hard to understand to basic concepts, but it takes a lot of care to not make any mistakes. I like to think of it as being similar to doing dynamic memory management in C. Sure the concepts are easy, but anyone who has done a lot of work with it knows that you have to be very careful to get it 100% correct.<BR/><BR/>I have to agree with david on this one. We will probably spend 20 years trying to figure out how to get programmers to do it write and then the next language will just do it automatically. Similar to how Java became the first heavily promoted language with garbage collection. These days no one even bothers to invent a language that doesn't have garbage collection.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8291547.post-53746283115702779562007-10-23T10:04:00.000-04:002007-10-23T10:04:00.000-04:00I agree with the previous comment. I don't think t...I agree with the previous comment. I don't think the author fully understand the difference between parallelism and multi-threaded. There is a really big difference of which the majority of programmers will probably never need to code for. Boosting your ego is probably a really bad reason for mastering HPC or similar types of parallel computing models.Unknownhttps://www.blogger.com/profile/09461457288176396256noreply@blogger.comtag:blogger.com,1999:blog-8291547.post-15781487557591119192007-10-23T07:58:00.000-04:002007-10-23T07:58:00.000-04:00> GUI applications, client/server, p2pWhat? These ...> GUI applications, client/server, p2p<BR/><BR/>What? These applications take %1 CPU and spend 99% of their time waiting for some event (User, network).<BR/><BR/>You mean "multithreaded programs"?<BR/><BR/>Multicore is good when you have a lot of load and the algorithm can be parallelized and speed matters.<BR/><BR/>A raytracer? Yes. p2p? Certainly Not.<BR/><BR/>Are you sure you know enough to provide advice for this?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8291547.post-89922370478605619312007-10-22T16:39:00.000-04:002007-10-22T16:39:00.000-04:00Maybe you're right. But on the other hand, I've do...Maybe you're right. But on the other hand, I've done some work in multi-threading and data structures designed to work with multiple threads.. and I'm not sure it's something that will ever catch on. Although it's fun, it requires a mind shift I'm not sure the masses will make.<BR/><BR/>More likely is that compilers will have to bridge this gap for us before it becomes mainstream, IMO.Unknownhttps://www.blogger.com/profile/05209256486443958084noreply@blogger.com