Domain: nec.com
Stories and comments across the archive that link to nec.com.
Comments · 437
-
CiteSeer
Note to academics:
Try NEC's CiteSeer.- Put your stuff on the Web if you want anybody to read it. Make sure your vital references are also on the Web. Make sure your URLs are stable.
- Come up with a usable index. I know that the most important thing, to you, is your name on the paper. Nobody outside academia cares.
-
Alpha Blended Pie Menus and Censorship in The SimsThe classic papers on transparent user interfaces include Toolglass and Magic Lenses: The See-Through Interface (1993), and A Taxonomy of See-Through Tools (1994).
The pie menus in The Sims use a combination of desaturation, darkening, and alpha blending to feather the edges of the menu.
Why transparency and the other effects? I didn't want the pie menus to obscure too much of the scene behind them. You can see through the pie menu as the animation continues on in real time behind it. The head of the currently selected person is drawn in the center of the pie menu, and follows the cursor by looking at the currently selected item.
I found it necessary to somehow separate the head from the rest of the scene, otherwise it looked like a giant head was floating in a room of the house! Drawing a solid opaque menu background would obscure too much of the scene. But even a partially transparent menu background still did not visually separate the head from the background scene enough. It looked muddy and cluttered, instead of crisp and bright.
So instead of simply alpha blending, I actually made it desaturate the background (removes the color so it's gray scale), and darken it (like casting a colorless shadow).
I wanted the colorful head to look sharp and bright up against the dark gray background. So the effect looks at the Z buffer to clip out the head in the menu center, so it remains bright and colorful against the dark gray background. That gives it visual "pop" that separates the head from the background. The edges of the effect are feathered, so there's no sharp line dividing the inside and the outside of the menu (useless visual clutter).
The gray shadow just gradually tapers off with distance, suggesting that the pie menu active area extends to the edge of the screen, not confined to the borders of a circle. The labels are drawn with high contrast drop shadows around the pie menu, so they stand out and easy to read, partially overlapping the shadow so they're look like they're part of the menu.
There's special code to perform that particular combination of pixel filters in real time, to every frame just after the 3D rendering phase.
The pixelated censorship effect works the same way as the pie menu shadow, like a Photoshop filter run after the 3D rendering phase. There's a special suit type that's tagged as a "censorship" suit. It consists of bounding boxes attached to the varius bones of the skeleton that you can select to censor. So if you just want to censor the head, you attach the head censor suit to the head bone. The 3D character renderer transforms the 8 vertices but doesn't draw anything, and stashes the screen bounding box away for the pixelation filter to draw later. That's how it can censor just the crotch of naked men, but also the chests of naked girls gone wild.
-Don
-
Alpha Blended Pie Menus and Censorship in The SimsThe classic papers on transparent user interfaces include Toolglass and Magic Lenses: The See-Through Interface (1993), and A Taxonomy of See-Through Tools (1994).
The pie menus in The Sims use a combination of desaturation, darkening, and alpha blending to feather the edges of the menu.
Why transparency and the other effects? I didn't want the pie menus to obscure too much of the scene behind them. You can see through the pie menu as the animation continues on in real time behind it. The head of the currently selected person is drawn in the center of the pie menu, and follows the cursor by looking at the currently selected item.
I found it necessary to somehow separate the head from the rest of the scene, otherwise it looked like a giant head was floating in a room of the house! Drawing a solid opaque menu background would obscure too much of the scene. But even a partially transparent menu background still did not visually separate the head from the background scene enough. It looked muddy and cluttered, instead of crisp and bright.
So instead of simply alpha blending, I actually made it desaturate the background (removes the color so it's gray scale), and darken it (like casting a colorless shadow).
I wanted the colorful head to look sharp and bright up against the dark gray background. So the effect looks at the Z buffer to clip out the head in the menu center, so it remains bright and colorful against the dark gray background. That gives it visual "pop" that separates the head from the background. The edges of the effect are feathered, so there's no sharp line dividing the inside and the outside of the menu (useless visual clutter).
The gray shadow just gradually tapers off with distance, suggesting that the pie menu active area extends to the edge of the screen, not confined to the borders of a circle. The labels are drawn with high contrast drop shadows around the pie menu, so they stand out and easy to read, partially overlapping the shadow so they're look like they're part of the menu.
There's special code to perform that particular combination of pixel filters in real time, to every frame just after the 3D rendering phase.
The pixelated censorship effect works the same way as the pie menu shadow, like a Photoshop filter run after the 3D rendering phase. There's a special suit type that's tagged as a "censorship" suit. It consists of bounding boxes attached to the varius bones of the skeleton that you can select to censor. So if you just want to censor the head, you attach the head censor suit to the head bone. The 3D character renderer transforms the 8 vertices but doesn't draw anything, and stashes the screen bounding box away for the pixelation filter to draw later. That's how it can censor just the crotch of naked men, but also the chests of naked girls gone wild.
-Don
-
Power Supply CryptanalysisUnfortunately, information about what the smart card is doing is leaked through the power supply. Giving the smartcard it's own internal power supply can help prevent power analysis attacks from the reader itself. By eliminating an input/output, the black box of the smart card can be made that much "blacker."
burris -
Why IBM is so important?
Clustering is such a fascinating area on its own and the article is so shallow that I'm curious why they've published it at all. They could mention the potential benefit of cluster computing as well as examples of some working clusters like Beowulf or Mosix or even the famous fact that there is a cluster among top 500 supercomputers.
-
More information from the posterI am the guy that posted the original question.
A suprisingly large number of responders have asked why anyone would need 64GB, and have speculated that we are either lazy, stupid, or have money to burn. While I can't reveal too much, I'll try to give you an approximate idea of the sort of problems that we are working on.
Basically, we are doing two things: graph theoretic algorithms on graphs with hundreds of millions of vertices and billions of edges, and robust classification systems trained on training sets of a similar size.
For our purposes, we need to access these data structures in a deterministic order that cannot be predicted in advanced. We could cache all of our data structures on disk, but the algorithms would require years to complete because of disk seek time. Instead, we are going to try to keep a compressed version of the data in memory. The difference is that the in-memory approach will take minutes as opposed to years.
And if you are thinking that we need a new algorithm, trust me on this, we are using the faster algorithm. Most of the other candidates run in exponential time.
If you want a real clue as to what we're doing, then read this. If you like what you've read and think you can help, then contact me. I am hiring.
-
More information from the posterI am the guy that posted the original question.
A suprisingly large number of responders have asked why anyone would need 64GB, and have speculated that we are either lazy, stupid, or have money to burn. While I can't reveal too much, I'll try to give you an approximate idea of the sort of problems that we are working on.
Basically, we are doing two things: graph theoretic algorithms on graphs with hundreds of millions of vertices and billions of edges, and robust classification systems trained on training sets of a similar size.
For our purposes, we need to access these data structures in a deterministic order that cannot be predicted in advanced. We could cache all of our data structures on disk, but the algorithms would require years to complete because of disk seek time. Instead, we are going to try to keep a compressed version of the data in memory. The difference is that the in-memory approach will take minutes as opposed to years.
And if you are thinking that we need a new algorithm, trust me on this, we are using the faster algorithm. Most of the other candidates run in exponential time.
If you want a real clue as to what we're doing, then read this. If you like what you've read and think you can help, then contact me. I am hiring.
-
What do you want from the guy?
If somebody would have bothered to check, the man is a Research Scientist Computer Science (lookup Gary Flake) in the NEC research instiute, with only 70 more researchers with him in the whole place, and let me guess that he has a lot of money to spend...
Give him a little credit, that what he is doing is probably worth the time and effort he is putting in to it, and be thankfull that you are here to hear about such a project (if he'll only tell us what it's about
...) -
What do you want from the guy?
If somebody would have bothered to check, the man is a Research Scientist Computer Science (lookup Gary Flake) in the NEC research instiute, with only 70 more researchers with him in the whole place, and let me guess that he has a lot of money to spend...
Give him a little credit, that what he is doing is probably worth the time and effort he is putting in to it, and be thankfull that you are here to hear about such a project (if he'll only tell us what it's about
...) -
I work with Utah
A group here at Duke has just started to collaborate with the Emulab people on a similar area of research. We're pretty excited, since we think our group has a lot to share with the Utah group. It's just kind of weird to load Slashdot and find your collaborators on the front page. Here I was thinking I'd take a break from research and read Slashdot, but noooooo
.....And to respond to another poster, maybe if Emulab had Muse-like resource management of their web server, they could handle the web load.
:) It would be nice if someone could work on merging the two, getting the two to leverage the best parts of both, work on .... uh, maybe I should get back to work before my advisor sees me posting on Slashdot. :)-jdm
-
What about the VM work done in other *nixes?
I do not follow *BSD nearly enough to make this kind of observation, but I thought I recalled that when Universal Virtual Memory was rolled into NetBSD, it was widely regarded as a good design. Anybody with much more VM design knowledge able to comment on how suitable a design like that one (or other well-regarded VM design from other Unixes) would be for the Linux kernel?
-
Re:Check out ErasmatazzFirst off, obviously, Chris has done some amazing stuff with the Erasmatron. However, as a product, I don't think it has a viable future. It has some pretty significant shortcomings, and it would take an incredible amount of work to bring the engine up to modern standards. That said, Chris's documentation of his development is, quite simply, the best text out there in the field of interactive storytelling.
If you're interested in this sort of thing, you'd can get a good feel for the existing work in the field from:
- InteractiveStory.net - Michael Mateas and Andrew Stern's interactive drama/believable agent project, and obligatory huge page o'links.
- Oz - The Oz project at CMU
- Erasmatron@Robotwisdom - Jorn Barger's excellent thumbnail sketch of Crawford's writings. In most cases, Jorn's synopsis is hyperlinked to the related page on erazmatazz
Selmer Bringsjord and David Ferrucci, Artificial Intelligence and Literary Creativity: Inside the Mind of Brutus, A Storytelling Machine, August 30, 1999.
Nicolas Szilas, Interactive Drama on Computer: Beyond Linear Narrative, 1999.
Antonio Furtado, Angelo Ciarlini, Plots of Narratives Over Temporal Databases, 1997.
Barbara Hayes-Roth, Robert van Gent, Story-marking with improvisational puppets, 1997.
W. Scott Neal Reilly, A methodology for building believable social agents, 1997.
IMHO, interactive storytelling is one of the most interesting cross-discipline computational problems out there.
-
Why VM is badVirtual memory is way overrated, and probably should be phased out, both on servers and desktops.
In Peter Denning's classic paper, The Working Set Model of Program Behavior, Denning concluded that paged virtual memory was, at best, good for an effective 2X increase in memory size. When he wrote that paper in 1968, memory cost about a million dollars a megabyte, so a 2X increase was worth the headaches of a VM system. Today, with memory at a few hundred dollars a gigabyte, it looks less attractive. It's not that expensive to double the size of RAM today. It can be cheaper than adding a fast disk drive just for paging. Uses less power, too.
Disk as backing store gets worse as RAM gets faster. When Denning wrote that paper, the fastest backing devices (drums) rotated at around 10,000 RPM, for a 6,000 microsecond access time, and core memory cycle times were around 4us. So main memory was 1,500 times faster than backing store. Today, RAM cycle times have dropped to around 0.020us, but disks still top out around 10,000 RPM, making main memory 300,000 times faster than backing store. Thus, the relative cost of a page fault has increased by a factor of 200. This makes VM far less attractive today than it used to be. It's not getting any better, either.
The price of having virtual memory is terrible performance once paging between active processes starts. That's called "thrashing". On a server which is processing short transactions, you're much better off throttling at the transaction launch point (as, for example, where CGI programs launch) than going into thrashing. This requires some coordination between applications and memory allocation, but where most of the memory is used by Apache and its child processes, that's a viable option.
The main value of VM today is getting rid of dead code at run-time. A basic problem with shared libraries is that you load in the whole library, needed or not, when you need any function from it. This wastes memory, but after a while, the VM system will notice the unused pages and quietly release them. On a larger scale, the same problem is seen with dormant applications, a problem which has gotten totally out of hand in the Windows world, where far too much unwanted stuff launches at startup. VM ejects them from memory. That's what VM is really used for today.
So if you're actually page-faulting, VM is hurting, not helping.
I'd argue that it's time to go back to a swapping model - all of an app has to be in before it runs. That's where UNIX started; virtual memory didn't come in until 4.1BSD. But in support of this, apps need more information about the current memory situation. And they should be able to designate parts of their space as pageable, at least at the shared object/DLL level. Only a few apps (web servers, window managers) need much memory awareness, so that's feasible. Throttling needs to occur at a smart place, just before allocating substantial resources, such as CGI process launch or connection opening. By the time the VM system becomes involved, it's too late; resources are already overcommitted.
The big win from this is repeatable latency at the memory level. With all the interest in reducing kernel latency at the CPU level, it's time to address it at the memory level too.
QNX, the real-time OS, is worth looking at in this regard.
-
A framework for self-improving systemsResearchIndex lists Theo: A framework for self-improving systems. Although The NECI Scientific Literature Digital Library: ResearchIndex itself does not carry the document, it lists several related ones. Heavy stuff. An excerpt from ResearchIndex summarizes Theo quite well:
For instance, the THEO system (Mitchell et al. 1989) uses a single knowledge base and a single set of axioms.
I'd suggest anyone seriously interested in self-improving systems check out Mitchell, T. M., J. Allen, P. Chalasani, J. Cheng, O. Etzioni, M. Ringuette, and J. C. Schlimmer's 1989 book, Theo: A Framework for Self-Improving Systems: National Science Foundation, published by DEC. -
A framework for self-improving systemsResearchIndex lists Theo: A framework for self-improving systems. Although The NECI Scientific Literature Digital Library: ResearchIndex itself does not carry the document, it lists several related ones. Heavy stuff. An excerpt from ResearchIndex summarizes Theo quite well:
For instance, the THEO system (Mitchell et al. 1989) uses a single knowledge base and a single set of axioms.
I'd suggest anyone seriously interested in self-improving systems check out Mitchell, T. M., J. Allen, P. Chalasani, J. Cheng, O. Etzioni, M. Ringuette, and J. C. Schlimmer's 1989 book, Theo: A Framework for Self-Improving Systems: National Science Foundation, published by DEC. -
New Directions in Cryptography
You were close with "Ideas for Cryptography" but it was actually New Directions in Cryptography
-
Some google alternatives
alltheweb.com Let's you search the web, ftp files, images, MP3s and Videos. The results are quite good though not as good as in google. It has support for more languages than google and I use it exclusively to search pages written in my native language(which isn't supported in google). Has the best ftp search.
ResearchIndex Nice scientific literature search engine. Lets you search not only documents but also citations. Keeps cached copies of the documents in multiple formats. Can show related documents or other documents viewed by users that viewed the current document.
vivisimo.com Groups the found documents by topics and subtopics. Nice interface and the sudgested topics are quite reasonable.
www.wisenut.com Similar to vivisimo, but vivisimo(IMO) is beter.
www.searchshots.com Lets you see screenshot of the found pages. Too bad has a content filter and the results are not very good.
www.teoma.com Simple interface. Can group the results by their topic.
ditto.com An image search engine.
webshots.com Not exactly an image search engine. But I've had much better luck finding images there than in any image search engine. Requires you to download a program (windows only) that puts the images as a wallpaper. -
Optimizing driversIt seems that this is not necessarily optimizing for Quake3 at the expense of other software. When making design decisions, in some cases one option is simply better than others. e.g. Choosing a radix sort over a bubble sort is basically all benefit and no cost. However, other decisions will improve performance for some tasks while reducing it for others. Think about Amdahl's Law for instance. Or consider adding an index to a field in a database system improves the performance of queries but reduces the performance of inserts and updates. In optimizing a system, your goal is to maximize it's performance in actual use. That means that the more you know about the expected use, the better design decisions you can make. If your database is being used to log transactions, and inserts will outnumber queries, you don't put the index on. If it's being used for census data, and will be updated seldom or never, but querried frequently, you do. That is to say, you use what you know about which operations will be requested the most often, and favor those at the expense of less-frequently used operations. The problems is that you often don't know which operations will be used most frequently at design time. If, however, some of these decisions can be made at run time, you may have more information available, and will be able to make better decisions.
Which gets us back to the issue at hand. I don't know anything about the inner workings of the Radeon driver, but there are probably a number of similar tradeoffs involved in its design. The most reasonable interpretation is *not* that Radeon has optimized for Quake 3 at the expense of other programs. If that were true, it would run at the same rate whatever it were named. The better explanation is that when the driver knows what program is being run (such as Quake 3) it optmizes itself to the known characteristics of that program, and when a program which the driver knows nothing about (such as "Quack") is run, it uses default settings.
Thus, it's not necessarily favoring Quake 3 over other applications, but is instead using optimizations for for known programs which are not available for unknown ones. There's nothing in this article to indicate that similar optimizations haven't been made for Counter Strike, Half Life, or any other popular 3D programs.
-
Re:Now that they've won the desktop "war"
That should be www.citeseer.com.
:-) -
It's all over the place
Part of my University-Sponsored Employment means I work for Communications Services--dealing with the phones, computers, and backbones as needed to keep them up. What I've come to find out is that most Administration don't want to plan for emergency situations.
We were looking at disaster planning. Since we use NEC Phone Switches, we were taking a look at what would be the first thing to go. Take a fire...you could get a switch in a semi trailer sent up overnight (or something like that), but your Main Distribution Frame (MDF) would be crud--you'd have to re-splice every cable pair that you have in order to restore service to everyone; depending on how bad the fire is, you'd have to resplice your RDF's as well
There are some things that we've thought of...like having a bit of redundancy in our wire plant, but the administration shoots us down every time we bring it up.
I guess what I'm getting at is that there isn't a whole lot of redundancy with SS7. Get into things like Voice Over IP, you'll have some flexability, but if your switch gets royally hosed, you're going to be down unless you've got an extra one sitting in another building with a backup MDF that is current. -
ResearchIndex (Re:My idea for research pub...)For the computer science field, ResearchIndex does some of what you want. A problem as I see it is that you don't submit papers. The one option you have is to submit a URL to a web page or ftp directory where there are some papers in PDF or PS. Another issue is that this site is more or less tracking what is available in paper form (mostly conference contributions) or tech reports.
But users of ResearchIndex then have the option of rating papers on a scale 1 to 5, and if memory serves me, also comment on the paper.
Nevertheless, it is a great system!
-
The Death of Expensive JournalsThe trend is toward freely available (or nearly free) scientific publications, and I see very little that is going to stop it. Peer review and long-term availability are issues that are easily resolved.
In large part, the publishers have brought this upon themselves by charging skyrocketing rates for subscriptions, especially to libraries. For quite a few years now, the vast majority of Computer Science papers have been available online, apparently in disregard of any publishers' terms. There is even a web site, the NEC ResearchIndex, that has a fairly large collection of Computer Science papers.
A major feature of scientific research has usually been the openness of scientific results; any result has generally been freely open to improvement (the DMCA has created some controversial exceptions). Now the results will become freely available to obtain as well.
-
Peer Review
I agree! It does seem ridiculous that journals should cream off such a large profit from redistibuting other peoples work. However, the review function that they perform is invaluable.
I subscribe to many IEEE journals and I'm happy to pay so that I don't have to waste huge amounts of my own time wading through poorly written/researched/inaccurate articles.
Therefore, in the absence of the editorial input of the journals there is a need for good internet based peer review systems until such time that we have automated agents to do the job for us.
Check out CiteSeer to see a step in the right direction. -
Re:It's not just biologists
don't know what the fuck happened there... I wrote the link correctly in the source... let's try it again and see what happens:
CiteSeer -
It's not just biologists
I'm doing a PhD in Mathematics, and as such I'm hoping that I'll be writing papers that might be publishable at some point in the near(ish
:) future. Because of this, I've been looking at the publishing terms of some of the Maths journals -- and they're absolutely terrible!
For example, 'Advances in Mathematics' take basically all of your rights to your paper away. You are basically not allowed to publish the article in any form, by any method -- including making it downloadable from the web. I could perhaps understand some of the restrictions if authors were paid for their work, but they're not (except in academic kudos).
I first noticed the problem when researching using (which is basically google for CS & applied maths papers -- give it a try!) -- all the papers you can find are preprints, and many of the ones you want just aren't freely available. Even when your employer (or the university) does sign up for the site licenses to get electronic copies of the articles, they're difficult to get hold of, and almost invariably in the annoying PDF format... (hard to manipulate, impossible to extract data from).
All of these small journals are owned by one or two massive publishing conglomerates. The fees and restrictions imposed are *utterly* archaic and obscene. We need freely available, peer reviewed, reputable academic journals. -
Ad-Hoc routing protocols
Interested readers should probably read A Performance Comparison of Multi-Hop Wireless Ad Hoc Network Routing Protocols to find out why this is difficult.According to the article, phones would have to exchange and update their routing information all the time, even while everything was working normally (because by definition a phone can not know if a neighboring base station that's just out of reach is still working or not). Every phone would continuously keep broadcasting a list of every other phone and base station in it's reach.
This overhead alone (just to update the routing tables) would consume a big chunk of the bandwith all the time. Since a base station dropout or overload is an exception (hopefully), a dynamic on-demand routing protocol would make much more sense in this case.
-
ResearchIndex cites and clarification
ResearchIndex should be in everybody's bookmarks.
In the previous post, I wasn't quite clear (shoot me, it's 5am and I've been up all night): there are a couple of different methods that I was pulling information from. In the penultimate paragraph, the final sentence was an aside referring to a method of using entanglement to transfer the keys. The rest of the post was referring to a method using polarisations and Heisenburg. Here are the two links to the papers.
First, for the transfer by polarisations. If you are at Cal, then go ask Vazirani, it looks like he has coauthored with them: http://citeseer.nj.nec.com/bennett92experimental.h tml
Then on the use of entanglement (they do not have the actual paper, bastards): http://citeseer.nj.nec.com/context/18763/0
-j -
ResearchIndex cites and clarification
ResearchIndex should be in everybody's bookmarks.
In the previous post, I wasn't quite clear (shoot me, it's 5am and I've been up all night): there are a couple of different methods that I was pulling information from. In the penultimate paragraph, the final sentence was an aside referring to a method of using entanglement to transfer the keys. The rest of the post was referring to a method using polarisations and Heisenburg. Here are the two links to the papers.
First, for the transfer by polarisations. If you are at Cal, then go ask Vazirani, it looks like he has coauthored with them: http://citeseer.nj.nec.com/bennett92experimental.h tml
Then on the use of entanglement (they do not have the actual paper, bastards): http://citeseer.nj.nec.com/context/18763/0
-j -
ResearchIndex cites and clarification
ResearchIndex should be in everybody's bookmarks.
In the previous post, I wasn't quite clear (shoot me, it's 5am and I've been up all night): there are a couple of different methods that I was pulling information from. In the penultimate paragraph, the final sentence was an aside referring to a method of using entanglement to transfer the keys. The rest of the post was referring to a method using polarisations and Heisenburg. Here are the two links to the papers.
First, for the transfer by polarisations. If you are at Cal, then go ask Vazirani, it looks like he has coauthored with them: http://citeseer.nj.nec.com/bennett92experimental.h tml
Then on the use of entanglement (they do not have the actual paper, bastards): http://citeseer.nj.nec.com/context/18763/0
-j -
Check out citeseer
Libraries had this a long time ago? Man, have you ever done a research for relevant papers in a library? Even with all their CD-Rom and online catalogs it still sucks, because it's still keyword based, like Altavista.
That changed with citeseer, a search DB that specifically links publications and calculates their relevance based on common citations.
Great for doing research, check it out. -
Another option for fans of HAL...I'm sorry to see that Artificial Intelligence NV is having troubles. My computer science dissertation research at the LSU Department of Computer Science involves building a computer model of human language acquisition, and I feel that the more working in this area, the better.
For those of you that might be interested, I just launched a new site dedicated to models of human language acquisition. Over time I hope to provide a repository of relevant news on researchers, conferences, papers, and books from fields including A/I, computational linguistics, developmental psychology, machine learning, and cognitive science.
I will also use the site to share information about my own work. Like HAL, my model learns (and "learn" should always be taken with a grain of salt) from the bottom-up, but the words it acquires are grounded in visual perception. The basic idea is to resolve nouns to objects and verbs to actions/relationships in short spatial-motion videos. My work is based on work by Jeffrey Mark Siskind, David Bailey, Jan Norris, and Katherine Nelson.
Upon completion of my dissertation, I hope to release some or all of the Java code for my model on the site.
-
Re:CompressionThe 25x chip is an array of more-or-less independent cores,
You mean like Texas Instrument's TMS320C80 DSP?
optimized for a general-purpose instruction set and geared towards SISD integer instructions, with each processor running its own instruction stream with its own control flow.
So it seems like it can do everything a DSP can vis a vis hardware-level parallelism, plus some things that are hard for SIMD-style DSPs. Which is faster, 25 SISD processors sharing an address space, or one SIMD processor which can operate on 25-ary vectors? Multiple SISD cores seem to win, I think, though they may be harder to program for.
Ask a DSP processor to play chess, and it'll crawl.
The main bottleneck in chess program is a game tree search. Tree searches are inherently parallelizable, and there are, in fact, very good algorithms for doing them on SIMD processors.
-
Quibble about lambda and parallelismThe lambda calculus is not inherently sequential, and languages based on the lambda calculus can be massively parallel in execution, just by using simple tricks like evaluating the arguments. The ideas have been floating around for decades - they boil down to:
Functional, side-effect-less programs and primitives
Parallel evaluation of arguments
Parallel evaluation of mapping primitives
See here for a recent reference.
-
Further Reading...
You can see some of his papers at: http://citeseer.nj.nec.com/30955.html That is a cool site for any scientifc article lookups. Form that link you can see a lot more of his papers and related ones. Their is a new book coming out about this. I saw it in the article Emergence : The Connected Lives of Ants and their have been others to: Swarm Intelligence
-
There is more data available for other languages..The article about Lisp is a follow-up of an article by Lutz Prechelt in CACM99 (a draft is available on his page along with other articles).
However there is more data now, as, Prechelt itself widdened the study, and published in 2000 An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl (a detailed technical report is here).
If you look, from the developer point of view, Python and Perl work times are similar to those of Lisp, along with program sizes.
Of course, from the speed point of view, in the test, none of the scripting language could compete with Lisp.Anyway some articles by Prechelt are interesting too (as many other research papers ; found via citeseer for instance)
-
Sorry, linux is re-implementation, not research
Sorry, linux is 99% re-implementation, not research. It's an impressive feat, but not one that results in papers in peer-reviewed journals. It's also a fine testbed from which many people have launched research (check out citeseer for linux) , but linux itself is not research.
Free Software and Open Source software development are also very interesting "experiments," but not the sort of controlled experiment where other folks can test your hypothesis by attempting to duplicate your results or anything like that... -
If text can be vectors, so can icons
It works on printers because the physical resolution is high enough that your eye can't pick out the pixels. But monitors do, what, roughly 75dpi?
You're probably used to the blocky "nearest neighbor" form of upsampling that's common in 3D APIs' software mode but carries 6 dB/octave of aliasing into the high frequencies, causing your eyes' high-pass filters to report spurious edges at pixel boundaries. Proper linear upsampling will use bilinear interpolation (aliasing falls off at 12 dB/octave) or cubic spline interpolation (18 dB/octave).
Now, with true type or vector fonts, or something along those lines, text would look OK. Line drawn and filled components would look fine of course. But say goodbye to any bitmapped graphics looking good - icons, etc.
Who says that icons can't be "line drawn and filled" vector graphics? Besides, there are techniques to scale images while adding fake detail, such as nonlinear interpolation and fractal methods.
-
FFP, Combinator Calculus and Parallel Forth
In his 1977 Turing Lecture, John Backus challenged computists to break free of what he called "the von Neumann bottleneck". One of the offshoots of that challenge was work on massive parallelism based on combinator calculus, a branch of mathematics that is far closer to Forth's formalism than parameter list systems (which are more or less lambda calculus derivatives). The prolific Forth afficionado Philip Koopman did some work on combinator reduction related to Forth but seems not to have followed through with implementations that realize the potential for massive parallelism that were pursued in the early 1980s by adherents of Backus's Formal Functional Programming paradigm. Given recent advances in hierarchical grammar compression algorithms, such as SEQUITUR, that are one step away from producing combinator programs as their output, and your own statements that Forth programming consists largely of compressing idiomatic sequences, it seems Backus's original challenge to create massively parallel Formal Functional Programming machines in hardware are near realization with your new chips -- lacking only some mapping of the early work on combinator reduction machines. It is almost certainly the case you are aware of the relationship between combinator reduction machines and Forth machines -- and of Backus's challenge. What have you been doing toward the end of unifying these two branches of endeavor so that the software engineering advantages sought by Backus are actualized by Forth machines of your recent designs?
-
Re:Design an OS with C++
This is an excellent question you have, and i hope it makes it into the interview.
one thing i would like to ask kurt in addition to what you have said, though, is this: Kurt: what experiences have you had with the fragile base class problem, do you think that the fragile base class problem will eventually lead you to regret maybe your choice of c++, and do you think that a form of dynamic binding, such as in objective c, could be worth the inherent slowdown it produces? Have you any other thoughts on dynamic vs static binding in object oriented systems? -
Theoretical or not ...
I know the problem is theoretical, but when people were talking about breaking encryption (rsa for instance) originally, they said it would take quadrillions of computing years. Now in the era of fast(er) computers, and (distributed networking models), keys are easier to break. Were the original people who made the 'practically unbreakable' claims thinking of today? Obviously not, because it wasn't a quadrillion years ago that the original claims were made.
-yb -
Re:This leads to more phylosophical questions ;)"Intelligence Without Reason" downloadable mirror sites on the top right of this page:
-
fingerprints--- BE VERY CAREFUL
BE VERY CAREFUL-- movies downloaded off the net may contain digital fingerprints. That is, each copy may be *slightly* different. It won't be noticable to a viewer. But if you crack the movie protection and put it on the net, the studios and law enforcement can use use these differences to find out that YOU DID IT and SCREW YOU FOR LIFE.
Putting fingerprints on DVDs isn't feasible because of the manufacturing process. And there's no way to keep track of which customer bought which copy anyway. In contrast, if you download a movie, they know your IP address and billing information and sticking in secret bits is easy.
The basic digital fingerprinting scheme is due to Boneh and Shaw. Their method provably defeats attacks based on getting several copies of the film and diff-ing them. The method isn't that great-- it requires around c^4 secret bits to defeat c colluders. But movies are huge, so c can be pretty big here. It is entirely possible that the Boneh scheme can and will be improved substantially in coming years.
Digital fingerprinting is THE biggest technological threat to file sharing. If you're the type to rip and share downloaded media, you've got to be aware of this threat. By distributing media with digital fingerprints, you may think you're uncatchable but may be actually waving a flag saying "ME, ME! I DID IT!"
-
Re:D's floating-point model is dangerous> David Goldberg, "What Every Computer Scientist
> Needs To Know About Floating Point Arithmetic,"
> ACM Computing Surveys, vol. 23, pp. 5-48, 1991.
>
> I could not find a copy online, but here is
> an interview with William Kahan
A search on Google reveals that you can find a copy of this paper online via ResearchIndex.
-
Here's the linkI agree that Goldberg's "What Every Computer Scientist Needs to Know about Floating Point Arithmetic" is a good and important read. Google found it several places, including at citeseer
But you know, just yesterday I re-read 80% of Kahan's site, and he does in fact recommend that non-expert numerical analysists (i.e. just about everyone) should use the maximum precision possible, as a sort of band-aid. Not that a guru like him thinks it's a cure-all, just that it'll help people a bit.
So Walter isn't that far wrong there, after all.
-
Researcher's Search Engine Other than Google
is Citeseer. It's popular among researchers since you can directly peek into papers...
-
Re:MPLS sucks
Um, there is a lot more to packet classification that just IP lookups. You have to uniquely identify the flow. Here is a paper (published in 1999) that gives a O(n) algorithm for doing packet classification, but it doesnt even scale to more that about 6,000 rules.
Who puts the shim on?
Well, you seem to have forgotten that only 1 router in the network has to do the lookup instead of every single router- that saves a lot of lookups.
And MPLS takes care of QoS automatically? Whoa. It does NO SUCH THING
No, I said that MPLS takes care of packet classification automatically, and that is the hardest part of QoS.
MPLS isn't a cure-all, but it does have some very cool benefits. -
Re:MPLS sucks
Like several people have already pointed out, you have pretty much missed the point of MPLS. Its pretty easy to throw a MPLS shim header in front of an IP packet, and it makes the job of packet classification a hell of a lot easier (for a taste of what packet classification is like w/o MPLS, or just for some good reading, check out http://citeseer.nj.nec.com/feldmann00tradeoffs.ht
m l). What you choose to do with that classification really doesnt matter.
I think you discount the QoS benefits too quickly- IMO it wont be long before backbone providers will be charging differently based on different QoS levels ("for $xxx, we can guarantee that 90% of your packets will make it through our network..."). QoS is one of the hottest topics right now, and MPLS takes care of the hardest part automatically. -
Academic RepositoryThe NEC Research Institute hosts a very nice warehouse of academic literature. Claims to be "Earth's largest free full-text index of scientific literature."
Not all of the documents cited are available for download, but those that are are available as PostScript, PDF, and GIF.
Scripts generate papers that aren't cached in a specific format on request.The page layout is familiar enough for those used to staring at lists of academic references, and is easy to follow.
-
Hamming distance / generalized checksums
A good bitwise (or symbolwise) measure of distance between two sequences is the Hamming distance, which is the number of different symbols between the two sequences. A simple checksum will basically tell you whether the Hamming distance is zero (same checksum) or nonzero (different checksum).
I'm sure it's possible to generalize the concept. I'm not aware of any specific work, but a simple solution would be something like a blockwise checksum. If enough blocks match up, it could raise a flag indicating the presence of possible spam. Ideally the blocks would be large enough that the concatenated checksum is short, but short enough that differences are easily captured.
You could try a keyword search for "error detection" or "checksums" using a publication search engine like Citeseer, or INSPEC if you have access through work or school.
-
Misconceptions in article
The article itself and the write-up are both wrong to say that "only Genome Biology and PubMed Central" have accepted the terms of the PLOS.
- PubMed Central is a repository of papers that are published in journals. It's an NIH (US government) initiative to ensure that electronic science articles are archived permanently. It's not a journal in its own right so it doesn't really make sense to talk about it accepting their terms.
- Genome Biology is one of many journals published under the BioMed Central banner which makes primary research articles freely available online. Copyright is retained by the author. Articles are indexed in PubMed, archived in PubMed Central and metadata is harvestable through the Open Archives Initiative Protocol. There are over 40 BMC journals.
Of course, the costs of processing text and organising peer review need to be covered somehow. BMC plan to charge for non-primary content (e.g. review articles) and we are considering introducing a fee for publication (which would be waived for scientists with limited funds). The cost to the biomedical community of funding research communication by this type of fee would be an order of magnitude less than the current model of charging for access to published work.
The big advantage of making science articles open-access is that indexing is made a lot easier. A biological version of ResearchIndex (aka citeseer) would become possible. Also, you can find open-access research using Google and you don't need to be in an institution with expensive subscriptions to journals to read it.