, 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); })(); Grant spurs innovation in parallel computing - News & Stories | 麻豆区

麻豆区

Skip to main content

Spark

Grant spurs innovation in parallel computing

Mon, Apr 01, 2019

When Calvin computer science professor Joel Adams launched Calvin鈥檚 first parallel computing course in the late 鈥90s, the field was 鈥渁n esoteric elective kind of thing.鈥漇upercomputers, the main devices at the time to rely on parallel computing, were few and far between.

In 2005, however, computer processor developers started making multicore processors for the general market. This increasing need has led Adams to collaborate with several institutions in an effort to advance parallel computing (a type of computing architecture in which several processors execute or process an application or computation simultaneously) instruction.

This past fall, Adams鈥攖ogether with colleagues at U.S. Military Academy at West Point and St. Olaf College in Minnesota鈥攔eceived a $595,131 grant for the development of new parallel computing teaching tools.

While St. Olaf College is researching touch-based approaches and West Point is building an interactive online textbook, Adams and two student researchers will work this summer on building several tools to provide students learning parallel computing with direct audio and visual feedback.

鈥淲e鈥檙e looking for real-world analogies to parallel behavior so that we can create the equivalent of those analogies in software,鈥 said Adams. 鈥淚f you give students enough examples of how parallelism is used to solve problems, they start thinking and understanding the underlying patterns of parallel behavior.鈥