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 Supports OpenStand

On March 9th, at the Open Future  reception at SXSW, Adobe announced support for the OpenStand  initiative. Our rationale for this was simple – OpenStand is good for the Web, good for users, and good for Adobe. It increases innovation, openness, and allows greater participation in evolving the Internet.

The Internet is built on standards. These standards come from all sorts of organizations – some formal and supported by governments, some less formal and created by industry associations, and some driven by users who believe in collective action. OpenStand takes a simple position on these organizations – if the organization is open, transparent, balanced, has due process in creation, and has broad consensus – then the organization and its specifications are legitimate.

The approach advocated by OpenStand seems to be intuitively obvious; good technical standards which are accepted and implemented by the industry should be judged not on their origin, but rather on their utility to the industry. A poor standard with a “proper background and backing” is still a poor standard.

The Internet is ubiquitous – from mobile phones to tablets to desktops – all form factors, all types of information, design, and literally “everything”.  It is a golden age for creative display and use of information – all driven by innovation, which then is “standardized” so users can access it and interoperate with complementary services.

Adobe has contributed significantly and will continue to contribute to efforts to document and test these innovative activities in conjunction with W3C with the Web Platform Docs (WPD) project and Test the Web Forward.   We have also (along with Microsoft and Google), supported the HTML5 editor as this standard moves to completion and we are also active in WebKit specs, as well as in formal metadata standards. All of these venues are important – and all build the ability of the market to innovate, grow, and change. And that’s what OpenStand is all about, which is why Adobe has chosen to support it.

Carl Cargill
Principal Scientist

Takeaways from the 14th Annual Privacy and Security Conference

I recently presented at the14th Annual Privacy and Security Conference held in Victoria, British Columbia.  There were several things which I took away from the meeting.

The first takeaway is that even though the three keynote speakers all looked at the issue of security and privacy from different perspectives – they all agreed that the level of interest in these two areas is growing as governments begin to recognize that the World Wide Web crosses borders with impunity.

The second takeaway was that standards creation is largely ignored. Mostly, the discussion was on standards and regulation implementation not on the act of creation. My presentation – “Whose Internet is it?” – focused on the groups that create basic Internet and telephony standards. The intent of the presentation was to convince people that they can (and should) get involved in creating the standards that drive the Web.

The final takeaway was that the distinction between standards and policy is becoming very blurred and the implications for national governments and for commercial providers are significant. On one hand, a nation has the right (and sometimes the duty), to protect itself and its citizens. For this, there exists the traditional standardization venues. On the other hand, there is the growing realization that these traditional bodies are ill equipped to deal with the increased pace of technology change that the Information and Communications Technology (ICT) world is experiencing. Throw into this mix open source and IPR, social change, and increasingly, mobile telecommunications, and you have a volatile mix.

This is an interesting, challenging, and confusing time for those involved. The collision of regulations, innovation, policy, technology, and a host of other factors, of necessity, make the issue complicated and complex – but very relevant to how the Web will evolve. Adobe will continue to follow this issue as it unfolds, and we welcome your perspectives and comments.

Carl Cargill
Principal Scientist

 

Canvas 2D and Real-Time Media Flow Protocol (RTMFP) Standards Contributions

In the last several weeks, Adobe has made two significant announcements about standards contributions. One announcement signaled the submission of a specification for Adobe’s Secure Real-Time Media Flow Protocol (RTMFP) to the Internet Engineering Task Force (IETF) and the other was an announcement by the W3C of stable and feature-complete HTML5 and Canvas 2D specifications to which Adobe contributed an endorsement (as well as providing Rik Cabanier as a co-editor of the Canvas 2D spec).

The two announcements are joined by a common thread: In both cases, Adobe felt that the market and our customers would benefit from the technology in the specifications. In the case of RTMFP, Adobe made a direct contribution of technology, which we believe has value for developers as the Internet continues to develop new applications and solutions. RTMFP may help solve some of the more vexing problems in real-time and peer-to-peer communications. It was submitted under a royalty-free grant – meaning that Adobe does not stand to profit from the contribution.

In the case of HTML5 and Canvas 2D, Adobe made a significant royalty-free grant of technology to the HTML5 specification as well as associated specifications that comprised “big HTML5” (which includes all the elements associated with HTML5 , from JavaScript to CSS). Along with that, Adobe (in conjunction with Microsoft and Google) is a major contributor to the W3C editor’s fund, which provides the means necessary to hire full time W3C editors for the HTML5.1 specification. We’re not sure how the next revision of HTML5 will shake out, but we’re reasonably certain that the careful and planned releases of stable and testable technology will help the market (including our customers) achieve fuller benefits from the World Wide Web.

In both cases, Adobe is betting on the future. The technologies being offered are either proven and existing technologies (Adobe uses RTMFP in Flash and other products), and Canvas 2D is increasingly being deployed and being embraced by the market. What is different is that businesses and developers now have an available and stable specification for implementation and planning. We don’t know where the market will go – but we do know that providing a firm foundation for continued expansion makes it much easier to build for the future.

We’re also willing to bet that the increased transparency offered by standards will help make the Internet and the Web more useful and increase the numbers of users and developers. And that they, in turn, will see more and more opportunities for further development and use. And this grows the market and increases the utility of the Web for everyone.

Carl Cargill
Principal Scientist

Testing: The Third Pillar of Standards

Recently, a series of “Test the Web Forward” events have been scheduled to promote getting the community involved in building test cases for important Web standards. A few months ago, I participated in “Test the Web Forward/Paris” in Paris.  The next “Test the Web Forward/Sydney” event is scheduled for February 8th and 9th in Sydney, Australia. These events, held in various cities around the world, are open to everyone who is passionate about Web standards, and bring together developers and standards experts.

Why is testing important? When we think about “standards,” we usually think about the two initial components: (1) specifications — written descriptions about how the standards work, and (2) implementations — software that implements the specification. A suite of test cases becomes an essential link between specifications and implementations.

When it comes to standards and standardization, what people care about is compatibility — the ability to use components from multiple sources with the expectation that those components will work together. This connection is there for all kinds of software standards, whether Application Program Interfaces (APIs), rules for communicating over the network (protocols), computer languages, or smaller component pieces (protocol elements) used by any of those.

On the Web, the APIs are frequently JavaScript, the protocol is often HTTP, and the languages include HTML, CSS, and JavaScript. URLs, host names and encoding labels and MIME types are protocol elements.

The “Create the Web” tour demonstrated the relationship between specification and implementation. “Test the Web Forward” brings in test cases to ensure that the promise of compatibility isn’t empty. Building the global information infrastructure requires a focus not only on new developments, but on compatibility, reliability, performance, and security. The challenge of testing is that the technology is complex, the specifications are new, and the testing needed is extensive.

I encourage everyone who is passionate about the Web and Web standards to attend the “Test the Web Forward” event in Sydney or other related events. Get involved and help make the Web a more interoperable place.

Larry Masinter
Principal Scientist

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)