, but this code // executes before the first paint, when

麻豆区

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); 600k grant to teach parallel computing - News & Stories | 麻豆区

麻豆区

Skip to main content

Calvin News

600k grant to teach parallel computing

Wed, Oct 31, 2012
Myrna Anderson

Today鈥檚 desktop computers are as powerful as supercomputers were 20 years ago, said . And 20 years from now, the average desktop may be as powerful as the supercomputers of today.

That鈥檚 why Adams, along with colleagues from and colleges, has pursued and landed a $600,000 grant from the National Science Foundation: They want to ensure that their students will have the skills to handle the computers of today and the future.

Adams, Elizabeth Shoop and Dick Brown, (computer science professors from Macalester and Saint Olaf colleges, respectively) propose to teach parallel computing鈥攕upercomputing鈥攏ot to their students, but to their CS colleagues from around the country. 鈥淭hat鈥檚 the way you can attack this problem on a national level,鈥 he said. 鈥淵ou train the trainers, not just your own students.鈥

The programming gap

Most college-age students don鈥檛 have parallel-programming skills, nor do the professors who are teaching them, Adams said: 鈥淢ost people who got advanced degrees in computing got little of this.鈥 That knowledge gap came about not just because computers became more powerful but because of the way they became more powerful.

Prior to 2006, computers worked increasingly faster because they were equipped with faster and faster processors. Though they were speedier, each of these single-core machines could only perform one task. In 2006, various computer companies introduced the first desktop computers with dual-core processors, and the number of cores in the average computer has roughly doubled every two years. And each core in a multi-core processor can perform a different task.

Adams has a favorite analogy to explain the benefits of a multi-core computer: 鈥淪uppose you have a 12-slice pizza, and the problem is to consume it. A single core computer is like you eating that pizza yourself. A quadruple-core computer is like you and three friends eating the pizza. Consuming the pizza will take one-quarter the time.鈥

That鈥檚 if you know how to take advantage of the multiple cores, Adams said: 鈥淭he problem is, you don鈥檛 program these the way you did before 2006 鈥 .The thought process you use to write the software is a different design process. If the software is not redesigned to take advantage of the multiple cores, it's like you eating the entire pizza yourself while your friends sit there watching you.鈥

The NSF grant, (of which Calvin鈥檚 portion is $125,307), will equip Adams, Shoop and Brown to host parallel computing workshops for the next two summers for computer science professors from many institutions at either Macalester or St. Olaf and at the Navajo Technical College in New Mexico. They will also host workshops at professional conferences, as well as create and distribute parallel computing educational materials through the website .

A grant Adams earned 18 months ago from the Technical Committee on Parallel Computing, part of the IEEE Computer Society, allowed three Calvin professors to build parallel computing components into their . Students in CS professor Harry Plantinga鈥檚 鈥淒ata Structures and Algorithms鈥 class are writing a parallel program to play a game called Mancala. 鈥淵ou have to learn some new programming and design techniques, and the algorithms change as well 鈥 . It鈥檚 always fun to learn new things, but it adds a level of challenge,鈥 Plantinga said.

Supercomputing history

Calvin and its colleagues are ahead of the curve on teaching parallel computing, said Adams, who constructed the college鈥檚 , in 2001, in 2007, and , in 2008. 鈥淚t used to be that in order to let students experience the speedup of a parallel program, you had to have a supercomputer," he said. "Today, students can experience parallel speedup on their desktop and laptop computers, but to a lesser degree than on the supercomputer.鈥

With parallel hardware now the norm, students will need the skill to write parallel software in today鈥檚 job market, Adams said: 鈥淚f they go to work for a company, they should be able to write software for that company that takes advantage of today鈥檚 multicore computers to run faster. As modern businesses collect more and more data, being able to process that data in a timely fashion becomes increasingly important. With computers no longer getting faster, the only way to process the data faster is to process pieces of it in parallel. Students can also apply these same skills to solve bigger problems鈥攖he kind of computational challenges the government is interested in solving鈥攕uch as modeling global warming on a planetary scale.鈥

Some of the most compelling reasons for learning parallel programming are closer to home, he added: 鈥淚f you鈥檙e going to spend $1,000 for a computer, you want software that takes advantage of it. It's hard to buy a single-core computer anymore. If you have a new iPhone or iPad, it doesn鈥檛 have one core,鈥 Adams emphasized. 鈥淚t has four. The software has to be rewritten to take advantage of that, or one core will do all the work while the other three sit there idle.鈥