WebCL é uma nova API aberta que está sendo elaborado pelo Khronos Group, mesmo consórcio envolvido na elaboração das APIs OpenGL, OpenCL e WebGL, dentre outras. Atualmente (maio 2011) o padrão está na sua fase inicial, sendo anunciado há um ou dois meses atrás.
WebCL nada mais é do que uma maneira de acessar o poder de processadores compatíveis com OpenCL através da web via JavaScript.
A única implementação disponível de WebCL se encontra no site da Nokia http://webcl.nokiaresearch.com/index.html na forma de um plugin para Firefox 4 e que adicionalmente precisa de o PC em questão já tenha uma instalação de drivers OpenCL.
Exemplo simples em WebCL
(Extraído do site da Nokia Research)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Hello WebCL</title>
<script type="text/javascript">
function detectCL(){
// First check if the webCL extension is installed at all
if( window.WebCL == undefined ){
alert( "unfortunately your system doesn't support WebCL. " +
"Make sure that you have both the OpenCL driver " +
"and the webCL browser extension installed" );
return false;
}
// Get a list of available CL platforms, and another list of the
// available devices on each platform. If there are no platforms,
// or noavailable devices on any platform, then we can conclude
// that webCL is not available
try{
var platforms = WebCL.getPlatformIDs();
var devices = [];
for( var i in platforms ){
var plat = platforms[i];
devices[i] = plat.getDeviceIDs( WebCL.CL_DEVICE_TYPE_ALL );
}
alert( "Excellent! your system does support webCL." );
} catch(e){
alert( "Unfortunately platform or device inquiry failed." );
}
}
</script>
</head>
<body onload="detectCL();">
<h1>Hello WebCL</h1>
</body>
</html>
Especificação do padrão
O padrão se encontra na fase de esboço (draft). Ele pode ser acessado via https://cvs.khronos.org/svn/repos/registry/trunk/public/webcl/spec/latest/index.html
Links
http://code.google.com/p/webcl/ Implementação protótipo WebCL da Samsung
https://github.com/Motorola-Mobility/node-webcl Implementação protótipo WebCL da Motorola
http://webcl.nokiaresearch.com/index.html Implementação protótipo WebCL da Nokia
http://www.khronos.org/webcl/ página oficial do (esboço do) padrão
http://learningwebcl.com/ site com notícias e experimentos em WebCL