Author Archive: bmatthew

OpenCL Enables More Compelling and Efficient Applications

We live in a world with an embarrassingly wonderful variety of choices when it comes to processors, monitors, video cards, and other components that make up the computers and devices we use every day. As a user, this variety is great because it encourages vendors to innovate and compete with one another, creating progressively more awesome hardware. As a programmer, this same variety is challenging because each vendor’s components use their own proprietary programming models and interfaces. Writing applications that perform correctly and efficiently on all that hardware would be overwhelmingly difficult without industry standard APIs. For example, just about every graphics accelerator vendor has a different way to program their chips or talk to their accelerators, which is why just about every video card vendor implements OpenGL, an industry standard graphics API. This then allows software developers to write applications that use OpenGL to take advantage of the wide variety of graphic accelerators found on users’ machines without having to write special code for each and every video card in the market.

Over the last ten years, hardware and software vendors have worked to figure out how to do for parallel programming and parallel processors what OpenGL did for graphics programming and graphics accelerator cards. CPU vendors now routinely introduce processors with multiple cores, hyperthreading, and other features that allow software to perform many operations at once. GPU vendors similarly design new chips designed to allow their massively parallel compute cores to perform general purpose programming tasks, in addition to the extreme graphics performance for which they were originally conceived. For a company like Adobe, whose applications need to squeeze every bit of performance and efficiency from every user’s machine, writing programs that run well on each vendor’s architecture and that take advantage of each vendor’s innovations would be inordinately difficult without an open, vendor-neutral API for parallel programming that was designed to address the variety of processors in the market today and yet to come. Thus is was that, five years ago, Khronos, the same industry consortium that governs OpenGL, convened a new working group to standardize just such an API, the Open Computing Language more commonly known as OpenCL.

I have the honor and pleasure of being Adobe’s voice and vote in the OpenCL working group. Because OpenCL, like its graphics cousin, OpenGL, is fundamentally implemented by hardware vendors, the OpenCL working group primarily consists of hardware companies. Consequently, I am often asked why Adobe is actively involved in creating an open standard for computing hardware. The answer is deceptively simple:  a good, open standard for parallel computing helps us deliver better software, and merely hoping that OpenCL will be that standard without our input is wishful thinking.

We want to deliver software that is fun to use, runs fast, and consumes as little power as possible, something that is increasing more challenging in today’s fragmented world. We write desktop software that runs on Mac OS and Windows, mobile software that runs on iOS, Android, and Windows 8, and server software that runs on Windows and Linux. Our software uses chips built by different vendors, including NVIDIA, AMD, Intel, and ARM. We also have more than a decade’s worth of experience designing and developing parallel computing systems, Pixel Bender and Halide being two well known strategic investments Adobe made in this space. Through those experiences, we gained a hard-won perspective that we can be even more successful by joining forces with the community at large, that using an open standard makes our jobs a lot easier – writing great software that runs on different operating systems, form factors, and chip sets – and allows us to spend more time building software that runs quickly and efficiently on your computers and devices.

Returning to the original question, we know that open standards are good for the industry and enables us to most easily write great software that runs well on the widest variety of hardware. Even though Adobe does not build hardware and, therefore, does not implement OpenCL, we use OpenCL and we know what features we need, from OpenCL and from OpenCL hardware, to enable us to build even more compelling and efficient applications. So, we openly participate in the discussion to develop the standard, adding our experience, perspective, and vision for creating great software running on great hardware, with the goal of shaping and influencing OpenCL to evolve in a way that is advantageous to Adobe’s customers. With our continued participation and influence, and with the cooperation and support of our vendor partners, Adobe has high hopes for the power of the computers and devices in your future, and for the capability, efficiency, and experience of the software you’ll run on them.

Eric Berdahl
Sr. Engineering Manager

 

The Role of PDF and Open Data

The open data movement is pushing for organizations, in particular government agencies, to make the raw data that they collect, openly available to everyone for the common good. Open data has been characterized as the “new oil” that is driving the digital economy.  Gartner claims: “Open data strategies support outside-in business practices that generate growth and innovation.”

What promises to be a very interesting workshop on the topic “Open Data on the Web,” is being sponsored by the W3C in London on April 23-24, 2013. I will be attending and will present a talk entitled “The Role of PDF and Open Data,” which explores how PDF (Portable Document Format – ISO standard ISO 32000-1) can be effectively used to deliver raw data.

There is widespread belief that once data has been rendered into a PDF format, any hope to access or use that data for purposes other than for the original presentation, is lost.  The PDF/raw-data question arises because raw data is usually best represented as comma-separated values (CSV) or in a specific (well documented) XML language.

PDF is arguably the most widely used file format for representing information in a portable and universally deliverable manner. The ability to capture the exact appearance of output from nearly any computer application has made it invaluable for the presentation of author-controlled content.

The challenge has been to find ways to have your cake and eat it too: to have a highly controlled and crafted final presentation and yet keep the ability to reshape the same content into some other form. We know of no perfect solution/format for this problem but there are several ways in which PDF can contribute to solutions, which I have explored in previous blog posts and will expand on in my presentation at the workshop. I hope to see you there.

James C. King
Senior Principal Scientist

 

Adobe Helps Welcome the ECMAScript Internationalization API

The ECMAScript Internationalization API, an extension to the ECMAScript Language Specification was recently approved. It provides a much-needed API that helps developers create world-ready applications. The new API has been standardized as ECMA-402.

The new API provides developers with the ability to create language and region-sensitive objects for the following needs:

·         collation (sorting text)

·         number formatting

·         date and time formatting

Many standards groups and companies worked together to create the specification. Although these three sets of internationalization functionality do not represent all the needs of a fully global application, the working group was successful in creating an ECMAScript language extension that organizations could agree on, across the software industry.

Although all browsers do not yet support the new API, several browsers have already begun to implement the new specification. Companies that have committed to supporting the specification and will implement the API in future versions of their browsers include Google and Mozilla.

John O’Conner
Globalization Architect

Adobe Sponsors EclipseCon

130x100_sponsoring

On March 25-28 the Eclipse and OSGi Alliance developer communities will meet in Boston at EclipseCon 2013 co-located with OSGi DevCon 2013. Adobe is proud to be a sponsor for this event. Carsten Ziegeler, Sr. Developer will present the Apache Sling OSGi Installer  which is used to drive installation and update deployments of the Adobe Experience Manager (AEM) 5.6. I will talk about the work of the OSGi Alliance to update the HTTP Service Specification

These Adobe presentations highlight the value Adobe is delivering to the OSGi community. Not only is the specification work possible due to Adobe’s membership in the OSGi Alliance, the actual implementation work is being done in the Apache Software Foundation where both Carsten and I are both members.  We’re happy to be involved.

If you’re attending EclipseCon or OSGi DevCon 2013, we’ll see you there.

Felix Meschberger, Principal Scientist, OSGi Alliance Board of Directors

Adobe’s ECMA TC-39 Involvement

Adobe is supporting, using, and contributing to Web standards, and ECMAScript is no exception. We’re actively building applications and tools built on and for Web technology, and are becoming keenly aware of the strengths and weaknesses of Web technologies for development.  That being said, Adobe is returning to the ECMA committee TC-39. During the week of March 11, Adobe’s Bernd Mathiske and Avik Chaudhuri attended the technical committee meeting. (Our entire ECMAScript team includes language design, type theory, compiler, concurrency and VM experts).

Ultimately, Adobe’s goal is to improve the Web experience for everyone. Making developers more productive is a key means to achieve this goal. One way we’re hoping to help is by improving the consistency of ECMAScript across its various implementations. While we’re aware that in practice, implementation differences come more from browser integration, we also plan to work with browser vendors to improve that consistency too. This will help us to develop better tools and make it easier for us to create our own Web applications.

On the JavaScript front, Adobe brings expertise from areas like ActionScript and Flash, Java, Lisp, OCaml, and other languages.  We’ll use this expertise to contribute to open-source platforms and we’ll do demonstrations of ideas built on existing open-source technology. Eventually, we’d like to see some of this work make it into both open-source and proprietary implementations.

My personal favorite feature that hopefully will become part of ECMAScript 6 is modules. The approach under consideration is highly flexible, versatile, and quite easy to use. It will have a huge effect on making ECMAScript scale to much more complex systems.

We’d like to see a more uniform interface to debugging and profiling data from JavaScript engines, and from browsers and virtual machines in general. We have some exciting ideas and a compelling way of demonstrating them and foresee interest among the other TC-39 participants. We’re researching this now and will start with preliminary specification and prototypes soon.

Performance matters a lot to Adobe, and this might be an area of ECMAScript where we can also help. This is mostly an implementation issue, so we’ll help on open-source implementations too. That also means ideas like asm.js and River Trail are compelling for us, and we’re willing to help with standardization on those fronts too.

I hope this introduction to our ECMA TC-39 participation is helpful and encouraging to TC-39 and the community at large.

John Pampuch
Director, Languages, Compilers and Virtual Machines

Adobe’s Secure Real-Time Media Flow Protocol

Today Michael Thornburgh, Sr. Computer Scientist at Adobe, submitted a specification for Adobe’s Secure Real-Time Media Flow Protocol (RTMFP) to the Internet Engineering Task Force (IETF) Internet-Drafts repository  along with a disclosure of and grant of essential intellectual property rights under royalty-free terms.

RTMFP is a low-level endpoint-to-endpoint data transport protocol designed for real-time and peer-to-peer (P2P) communication. It presents a unified and holistic solution to a number of Internet communication problems, including security, NAT traversal, congestion control and prioritization of parallel media and data flows, variable transmission reliability for messages, and IP address mobility.

RTMFP is the foundation protocol that we use to bring the P2P and Multicast capabilities to Adobe products such as Adobe Flash and Adobe Media Server, but we believe it has applicability beyond Flash that the Internet community can use in their own innovations for next-generation real-time and P2P applications. Adobe continues to develop technologies using RTMFP within Adobe Flash and Adobe Media Server including features like Multicast and Groups, being used today by our customers to deliver high quality video experiences across public and corporate networks.

We are excited to continue making contributions to standards organizations such as the IETF that further Internet technologies for developers and users. As a technology leader, Adobe collaborates with stakeholders from industry, academia and government to develop, drive and support standards in existing and emerging technologies, policy areas, and markets, in order to improve our customers’ experience.

We welcome comments and feedback to help us improve the quality, clarity, and accuracy of this specification and we are excited to see what the Internet community creates with it.

Kevin Towes
Sr. Product Manager

(reposted from: Kevin Towes on Online Video at Adobe blog)