Shared posts

16 Aug 16:29

Siggraph 2013 : le rendez-vous international de l'imagerie numérique

La 40e conférence internationale dédiée à l'imagerie numérique, Siggraph 2013, aura lieu du 21 au 25 juillet à Anaheim en Californie. L'occasion pour les 9 équipes de recherche d'Inria : Alice, Bipop, Geometrica, Hybrid, Imagine, Manao, Maverick, Reves et Titane, de présenter leurs recherches et les avancées dans ce domaine.

lire la suite

21 Jul 19:44

ReKey – Ne soyez plus les 99%

by Korben

Face à l'inaction des constructeurs suite à la divulgation de la faille Master Key dans Android, les entreprises Duo Security et System Security Lab de la Northeastern University (NEU SecLab) ont décidé de réagir en mettant en ligne un patch qui permet de corriger la faille.

Baptisé ReKey, cette application que vous pouvez trouver sur le Google Play Store injecte dynamiquement du code dans la machine virtuelle Android Dalvik afin de corriger les classes ZipEntry et ZipFile dans lesquelles se trouvent la faille. Pour rappel, cette faille serait présente dans 99% des téléphones Android actuellement en circulation.

green ReKey   Ne soyez plus les 99%

Evidemment, pour que cela fonctionne vous devrez être root sur le téléphone.

Attention, ce n'est pas un fix permanent, mais plutôt un correctif qui nécessite que ReKey soit relancé à chaque reboot... jusqu'au jour où les constructeurs voudront bien régler ce problème en implémentant le patch officiel mis en ligne par Google depuis plusieurs jours...

21 Jul 19:30

Alan Turing to be given posthumous pardon

"Alan Turing, the Enigma codebreaker who took his own life after being convicted of gross indecency under anti-homosexuality legislation, is to be given a posthumous pardon. The government signalled on Friday that it is prepared to support a backbench bill that would pardon Turing, who died from cyanide poisoning at the age of 41 in 1954 after he was subjected to 'chemical castration'." Justice.
21 Jul 19:26

Science décalée : d’où vient la petite voix qui lit dans notre tête ?

by Janlou Chaput, Futura-Sciences
Pourquoi, quand nous lisons une phrase, entendons-nous notre voix dans notre tête ? Une étude canadienne vient d’apporter une réponse à cette question, très peu étudiée. Selon l’hypothèse avancée par Mark Scott, de l’université de Colombie-Britannique, ce serait la même...
21 Jul 10:32

Everything you need to know about licensing in 2 minutes

 OpenSource.com: Outercurve Foundation Technical Director Stephen R. Walli explains why open source licenses are so important???and why every programmer needs to know more about them

21 Jul 10:27

Les expériences du CERN mettent le Modèle standard à l'épreuve

Les nouveaux résultats présentés le 19 juillet 2013 lors de la conférence EPS-HEP à Stockholm (Suède) constituent l'un des tests les plus rigoureux à ce jour pour confirmer le Modèle standard de la...
18 Jul 21:47

101 Most Fun Open Source Games and Apps

 Datamation: Popular open source downloads for arcade, strategy, adventure, and more.

18 Jul 21:19

OpenGL Frame Latency / Jitter Testing On Linux

Beyond there finally being Team Fortress 2 benchmarks on Linux, at Phoronix is now also support for OpenGL frame latency benchmarks! It's another much sought after feature and request for graphics hardware and driver testing...
18 Jul 21:18

Wine 1.6 Released With 10,000+ Changes

After a slew of release candidates, Wine 1.6 was officially released today. The Wine 1.6 release comes just one year after the Wine 1.4 stable release but it packs in about 10,000 individual changes...
17 Jul 21:12

Mesa 9.2 Can Boost Intel Haswell Graphics 30~40% On Linux

Yesterday I shared open-source Linux graphics benchmarks showing the Intel Ivy Bridge performance improving on Mesa 9.2 over the earlier releases of this important open-source Linux graphics driver component. However, for the latest-generation Intel "Haswell" graphics, Mesa 9.2 is an even more important upgrade. Here's a look at the performance benefits in moving from Mesa 9.1 to the soon-to-be-released Mesa 9.2.
17 Jul 21:06

Encore et toujours ... le forfait jour SYNTEC illégal ...

by Le Délégué du Personnel AKKA I&S Coframi
Déclaration Fédérale - Fédération CGT des Sociétés d'Etudes


L’arrêt du 3 juillet 2013 de la Cour d’Appel de Paris stipule dans ses motifs au regard du forfait jour que :

« Ce mode de décompte étant toutefois profondément dérogatoire par rapport au droit commun, la mise en place du forfait jour est conditionnée par l’existence d’un accord collectif de branche ou d’entreprise prévoyant la possibilité de recours et fixant obligatoirement les principales caractéristiques de la convention de forfait (catégorie de cadres concernés, nombre de jours travaillés, modalités de décompte des journées et demies journées de travail et de repos, conditions de contrôle de son application, modalités de suivi de l’organisation de travail des cadres concernés, de l’amplitude de leur journée d’activités et de la charge de travail qui en résulte, modalités concrètes d’application des repos quotidiens et hebdomadaires).

A défaut, la convention collective est irrégulière et le salarié est en droit de solliciter le paiement des heures supplémentaires sur la base des principes de droit commun du temps de travail».

Un arrêt du 24 avril 2013 avait déjà mis en exergue que compte tenu, des dispositions de l’Union Européenne relatives à la durée du temps de travail, « [...] toute convention de forfait en jours doit être prévue par un accord collectif dont les stipulations assurent la garantie du respect des durées maximales de travail ainsi que les repos journaliers et hebdomadaires ».

Il faut par conséquent se saisir partout de ces arrêts pour mettre en difficulté le patronat et renégocier un véritable accord de réduction du temps de travail.
Dans chaque groupe, dans chaque entreprise et dans chaque établissement, faisons monter la pression.

Montreuil, le 16 juillet 2013

Voir aussi :

Modalité 3 de réalisation de missions avec autonomie complète : les salarié-e-s peuvent faire des recours juridiques et dénoncer leur accord individuel en réclamant le paiement d’heures supplémentaire sur 5 ans.

17 Jul 21:04

Windows Wine and Virtual Machines

OSTATIC: All due respect to the Wine developers and community. What they have achieved is very technically impressive.

17 Jul 20:51

TF1 attaque en justice Captvty

by Korben

Si vous êtes adeptes du Replay , vous connaissez sans doute Captvty, un excellent logiciel gratuit pour Windows qui permet de mater des émissions rediffusées et qui facilite leur téléchargement.

Depuis 2011, Captvty fait régulièrement l'objet de menaces de la part de chaines de TV. Ces menaces sont à chaque fois restées sans suite puisque le logiciel est parfaitement légal. Captvty fonctionne exactement comme un navigateur web qui propose une liste des vidéos en libre accès sur les sites des chaines.

Il ne contourne aucun DRM, ne copie aucun flux (pas de reproduction), ne prive pas les chaines de leurs revenus publicitaires et on ne trouve trace sur le site d'aucune émission piratée. Le contenu téléchargé provient directement du site des chaines de TV (source licite) et chaque utilisateur de Captvty exerce simplement son droit à la copie privée.

Rien d'illégal là-dedans donc... En 2008, la société Wizzgo qui proposait un magnétoscope numérique en ligne a été condamnée sur la base que :

  • Le copiste et l'usager doivent être la même personne
  • La copie doit être faite pour un usage personnel et rester dans un cadre familial
  • La copie ne doit pas générer d’activité lucrative de la part du copiste.

Wizzgo ne respectait pas ces règles et a été condamné. Mais cela a généré une jurisprudence qui donne aux internautes, le droit de récupérer sur le net toute œuvre gratuite légalement publiée.

Le logiciel Captvty respecte donc parfaitement ces règles et la législation et ne fait aucun profit sur le dos des chaines de TV.

Toutefois, ça n'empêche pas les chaines de TV de continuer à sortir les biscoteaux et à faire pression pour que Captvty disparaisse. Dernier exemple en date, ce courrier de TF1 (pour e-TF1) envoyé à OVH, l'hébergeur de Captvty.fr, afin que ces derniers ferment le site sous les 48h.

Les raisons invoquées par e-TF1 sont :

  • Le contournement de mesures techniques de protection pour décrypter (sic!) les flux -> FAUX, TF1 n'utilise pas de DRM.
  • La mise à disposition d'une application qui permet de commettre une infraction -> La copie privée serait une infraction aux yeux de TF1 ?
  • De tromperie du consommateur en déclarant que cet outil est légal -> Jusqu'à présent il n'y a rien qui prouve que c'est illégal, bien au contraire...

S'en suivent quelques mentions de milliers d'euros d'amende et de peines de prison, une indication que l'affaire a été portée en justice ainsi qu'une mise en demeure à l'encontre d'OVH pour fermer le site.

Extrait du courrier envoyé à OVH :

doc TF1 attaque en justice Captvty

Captvty a répondu à e-TF1 ainsi qu'à OVH. Reste à savoir si l'hébergeur se rangera immédiatement du côté de l'avocat d'e-TF1 ou s'il laissera trancher la justice.

En tout cas, c'est moche !

En ce qui me concerne, j'utilise beaucoup Captvty car c'est le seul moyen que j'ai de regarder des émissions en rattrapage sur ma TV. Le service incomplet proposé par les Box ADSL est inutilisable chez moi, et malheureusement, je n'ai pas de TV connectée qui supporte le player flash des sites. C'est donc le seul moyen que j'ai.

Au lieu de s'élever au niveau du soft Captvty en proposant un service de qualité qui permettrait aux internautes de télécharger leurs émissions, TF1 préfère se lancer dans un combat inégal pour écraser la mouche Captvty.

Je ne sais pas qui sortira gagnant de ce bras de fer, mais je sais que celui qui sortira perdant, c'est une fois encore les internautes qui devront se plier à des contraintes commerciales et technologiques, nous empêchant par la même occasion d'exercer notre droit à la copie privée.

Bon courage Guillaume !

16 Jul 10:58

Tortilla – Un outil capable de router tout le trafic TCP/IP et DNS d’une machine Windows via TOR

by Korben

Tor est une invention formidable (Et Jacob Appelbaum mériterait bien un prix Nobel tiens...) et qui pourtant, sous Windows est mal exploité. En effet, à part le Tor Bundle (Tor + Firefox), qui permet de surfer de manière anonymisée, il n'existe rien d'autre. Dès qu'on sort d'un navigateur ou d'un logiciel qui supporte nativement les proxys Socks ou HTTP, il n'est plus possible d'utiliser Tor. Il n'est pas possible non plus d'utiliser Flash par exemple puisque ce dernier est un plugin étranger au navigateur...

Autre exemple, les chercheurs qui analysent les malwares sous Windows se retrouvent vite dépourvus et leur IP peut rapidement se retrouver aux mains des pirates.

Il est bien sûr possible de rerouter tout le trafic d'une machine pour le passer via Tor mais uniquement si on est sous GNU/Linux. Sous Windows ce n'est pas possible à moins d'utiliser une passerelle matérielle externe (et fonctionnant sous GNU/Linux) qui sera capable de faire transiter via Tor, tout le trafic sortant de vos ordinateurs. Mais vous vous en doutez, ça demande un peu plus de boulot.

C'est pourquoi, Jason Geffner a mis au point un outil qui va permettre de faire transiter par TOR, de manière sécurisée, anonyme et transparente, tout le trafic TCP/IP et DNS d'une machine. C'est un peu l'outil qu'il manquait depuis un petit moment !

Baptisé Tortilla, cet outil open source sera présenté lors de la Black Hat 2013 et mis en ligne rapidement derrière. On n'a pas de détail technique, mais je suppose que cela créera une interface réseau virtuelle qui exploite Tor et via laquelle, toutes les connexions transiteront, et cela peu importe les outils que vous utilisez.

Hâte de tester ça ! Je pense que ça va changer la vie de pas mal de monde.

Photo (CC)

12 Jul 12:00

Deux grandes avancées autour des nombres premiers

by Bruno Duchesne

Retour sur les annonces autour des conjectures faibles de Goldbach et des jumeaux qui ont eu lieu en mai 2013.

- Echos de la recherche / Algèbre - Théorie des nombres, Piste rouge
12 Jul 11:59

Cozy Cloud – Un outil pour reprendre la main sur vos données

by Korben

Si vous cherchez un bon petit script pour héberger votre propre calendrier, vos contacts, vos flux RSS, vos emails, vos notes, vos photos, vos todo-lists ou encore vos signets, courez jeter un oeil à Cozy Cloud.

Développé par des Français, cette plateforme de cloud 100% libre fonctionne par module. En gros, vous n'installez que ce dont vous avez besoin. L'installation exige Python et se fait en quelques secondes.

cozy Cozy Cloud   Un outil pour reprendre la main sur vos données

Une version corpo, imitant le modèle WordPress et où se sont eux qui hébergent le script et vos données est aussi dispo ici.

12 Jul 11:57

How to Learn Linux and Share What You Learn: 100 Linux Video Tutorials

Linux.com: One of the best things about Linux is that people share what they learn. It's a virtuous cycle of knowledge.

11 Jul 20:16

La seconde (enfin) précise

La seconde pourrait bien être redéfinie. Des chercheurs français ont en effet élaboré une horloge optique dont la précision dépasserait la valeur de référence fixée en 1967 par l’horloge à césium. Les performances de ce modèle optique seront comparées aux autres systèmes de mesure développés en Europe, ainsi qu’à la future horloge destinée à la Station spatiale internationale. L’objectif est de déterminer le plus précis de ces instruments, enjeu qui fait l’objet d’une vive concurrence mondiale.

11 Jul 20:11

Windows timer resolution: megawatts wasted

"The default timer resolution on Windows is 15.6 ms - a timer interrupt 64 times a second. When programs increase the timer frequency they increase power consumption and harm battery life. They also waste more compute power than I would ever have expected â€" they make your computer run slower! Because of these problems Microsoft has been telling developers to not increase the timer frequency for years. So how come almost every time I notice that my timer frequency has been raised it's been done by a Microsoft program?" Fascinating article.
11 Jul 11:32

Le parlement français adopte une disposition législative donnant la priorité au logiciel libre

by Frederic Couchet

Après d'intenses débats, le parlement français vient d'inscrire pour la première fois dans la loi la priorité au logiciel libre pour un service public, avec l'adoption du projet de loi enseignement supérieur et recherche.

Cette disposition avait été introduite par le Sénat, puis confirmée fin juin 2013 par la commission mixte paritaire (CMP) qui s'était réunie pour réexaminer les dispositions votées non conformes dans les deux chambres (Assemblée nationale et Sénat). De nombreuses personnes s'étaient mobilisées suite à l'appel de l'April pour contacter les députés et sénateurs membres de cette CMP pour que la disposition en faveur du logiciel libre soit conservée.

L'Afdel et le Syntec numérique ont tenté de s'opposer à cette disposition notamment en arguant de prétendues « difficultés juridiques ». L'Inria a rejoint récemment le lobby contre la disposition en faveur du logiciel libre, générant plusieurs réactions dont l'Aful, François Pellegrini et des personnels de l'Inria. En contact avec les parlementaires et le gouvernement, l'April leur a communiqué une analyse sur la validité juridique d'une disposition législative donnant la priorité au logiciel libre.

Après le Sénat le 3 juillet 2013, l'Assemblée nationale a finalement adopté le 9 juillet 2013 le projet de loi relatif à l'enseignement supérieur et à la recherche. Le texte n'attend plus désormais que sa promulgation par le Président de la République.

L'article 9 du projet de loi précise que :

    II. – Au même code de l’éducation, il est rétabli un article L. 123-4-1 ainsi rédigé :

    « Art. L. 123-4-1. – Le service public de l'enseignement supérieur met à disposition de ses usagers des services et des ressources pédagogiques numériques.

    « Les logiciels libres sont utilisés en priorité. »

Lire les commentaires

11 Jul 07:36

ALMA: un cliché prénatal révèle l'embryon d'une gigantesque étoile

De nouvelles observations effectuées au moyen du vaste réseau d'antennes (Sub-)Millimétrique de l'Atacama (ALMA) ont permis aux astronomes d'acquérir la plus belle vue à ce jour d'une gigantesque...
10 Jul 16:12

L'Agence spatiale européenne dévoile la future Ariane 6

by Rémy Decourt, Futura-Sciences
Après plus de 600 concepts de lanceurs du futur et une short list de 130 versions différentes à l’étude, l’Agence spatiale européenne a dévoilé la configuration définitive d’Ariane 6, le lanceur qui doit succéder à Ariane 5 à l’horizon 2020. L’Esa a opté pour la version...
09 Jul 20:40

A New & Exciting OpenGL 3 Benchmark To Run

There's finally a new and visually exciting OpenGL benchmark to try out for Linux, OS X, and Windows users alike. The benchmark also supports OpenGL 3.x contexts for making testing more exciting with regard to the Linux graphics driver stack...
09 Jul 20:32

A New Internet Draft Of HTTP 2.0 Published

The Hypertext Transfer Protocol Bis Working Group of the IETF has published a new Internet draft of the HTTP 2.0 protocol...
09 Jul 20:31

Le parlement français adopte pour la première fois une disposition législative donnant la priorité au logiciel libre

by fcouchet

Paris, le 9 juillet 2013. Communiqué de presse.

Le parlement français vient d'inscrire pour la première fois dans la loi la priorité au logiciel libre pour un service public, avec l'adoption du projet de loi enseignement supérieur et recherche. L'April, qui a beaucoup contribué aux débats, se réjouit tout particulièrement de ce vote et félicite les députés et sénateurs d'avoir reconnu l'importance des logiciels libres pour le service public de l'enseignement supérieur1, car eux seuls permettent de garantir l'égal accès de tous à ce futur service public. L'April espère que cette première étape sera suivie par d'autres dispositions législatives en faveur du logiciel libre. Elle remercie également tous ceux qui se sont mobilisés pour contacter les parlementaires.

Après le Sénat le 3 juillet 2013, l'Assemblée nationale a adopté le 9 juillet 2013 le projet de loi relatif à l'enseignement supérieur et à la recherche avec notamment son article 9 (anciennement article 6) qui donne la priorité au logiciel libre pour les services et ressources pédagogiques numériques mises à disposition par le service public de l'enseignement supérieur.

L'article 9 du projet de loi précise que :

II. – Au même code de l’éducation, il est rétabli un article L. 123-4-1 ainsi rédigé :

« Art. L. 123-4-1. – Le service public de l'enseignement supérieur met à disposition de ses usagers des services et des ressources pédagogiques numériques.

« Les logiciels libres sont utilisés en priorité. »

Pour la première fois en France, une priorité au logiciel libre est donc consacrée par la loi.

« La priorité au logiciel libre pour le service public de l'enseignement supérieur est une première étape dont nous souhaitons qu'elle sera suivie par la mise en place d'une vraie politique publique en faveur du logiciel libre  » a déclaré Lionel Allorge, président de l'April.

Une disposition similaire avait été introduite par le Sénat dans le cadre du projet de loi de refondation de l'école de la République. Mais un amendement du ministre Vincent Peillon, voté par l'Assemblée nationale, avait malheureusement vidé la disposition de sa substance. Dans ce cas précédent, le ministre avait avancé de prétendues "difficultés juridiques" pour ne pas vouloir d'une priorité législative au logiciel libre. L'April avait alors communiqué aux parlementaires et au gouvernement une analyse sur la validité juridique d'une disposition législative donnant la priorité au logiciel libre (PDF, 7 pages).

« Au cours des débats autour du projet de loi refondation de l'école, le gouvernement et les parlementaires avaient visiblement subi des manipulations de lobbys, prétendant une impossibilité de donner la priorité au logiciel libre. Saluons l'évolution positive du gouvernement et des parlementaires, qui remet l'intérêt général devant l'intérêt particulier de quelques entreprises. Le logiciel libre est un moyen de s'assurer que tout le monde ait accès à l'information, et que les élèves ne soient pas de simples consommateurs de produits numériques » a déclaré Jeanne Tadeusz, responsable des affaires publiques à l'April.

« Le logiciel libre est l'incarnation informatique de notre devise républicaine, "Liberté, Égalité, Fraternité", et permet l'appropriation par tous de la connaissance et des savoirs. Il est donc fondamental qu'il soit intégré en priorité à notre système éducatif. Merci aux députés et aux sénateurs d'avoir, pour la première fois en France, introduit une disposition législative donnant la priorité au logiciel libre », a déclaré Frédéric Couchet, délégué général de l'April.

Le texte n'attend plus désormais que sa promulgation par le Président de la République.

À propos de l'April

Pionnière du logiciel libre en France, l'April est depuis 1996 un acteur majeur de la démocratisation et de la diffusion du Logiciel Libre et des standards ouverts auprès du grand public, des professionnels et des institutions dans l'espace francophone. Elle veille aussi, dans l'ère numérique, à sensibiliser l'opinion sur les dangers d'une appropriation exclusive de l'information et du savoir par des intérêts privés.

L'association est constituée de plus de 4 000 membres utilisateurs et producteurs de logiciels libres.

Pour plus d'informations, vous pouvez vous rendre sur le site Web à l'adresse suivante : http://www.april.org/, nous contacter par téléphone au +33 1 78 76 92 80 ou par notre formulaire de contact.

Contacts presse :

Frédéric Couchet, délégué général, fcouchet@april.org +33 6 60 68 89 31
Jeanne Tadeusz, responsable affaires publiques, jtadeusz@april.org +33 1 78 76 92 82

08 Jul 19:50

De La Matière Noire Détectée Sans le Savoir ?

by Dr Eric SIMON
A écouter !
If you cannot see the audio controls, your browser does not support the audio element
Dan Hooper est un physicien théoricien qui aime beaucoup la matière noire. Il l'aime tellement, il y croit tellement, pourrait-on dire, qu'il en est sûr, non seulement elle existe sous forme de WIMPs, mais en plus il arrive à en détecter là où les physiciens expérimentateurs ne la voient pas dans leurs données... Et il donne même la masse (et la section efficace) de la particule tant recherchée avec une précision assez déconcertante : entre 7 et 10 GeV.

Reprenons.
A ce jour, quatre expériences ont vu des événements compatibles avec des interactions de WIMPs dans leurs détecteurs, tout d'abord les italiens de DAMA, qui le clame depuis 2002 déjà, mais avec des méthodes semble-t-il controversées (encore que...). Ensuite les américains de l'expérience CoGENT en 2010, puis se fut le tour des allemands de CRESST en 2011. Enfin, très récemment, d'autres américains, avec l'expérience CDMS-Si.
Dan Hooper (Fermilab)
Toutes ces expériences de recherche directe de matière noire ont un point commun : les événements observés impliqueraient des WIMPs de faible masse, inférieure à 10 GeV, alors que la plupart des expériences étaient optimisées depuis des années pour chercher des particules aux environs de 50 à 100 GeV. 
Et le fait notable c'est aussi que toutes ces expériences utilisent des détecteurs de type différents : scintillateur NaI, germanium semiconducteur, scintillateur bolométrique en tungstate de calcium, et bolomètre silicium, respectivement.
Même si la plage de masse obtenue est à peu près la même, il reste des incohérences entre les différents résultats. Deux seulement se recoupent partiellement : ceux de CoGENT et de CDMS-Si. Mais il faut savoir que les trois interactions observées par CDMS-Si n'ont pas été clamées comme découverte par leurs auteurs, qui sont peut-être trop prudents.

Les physiciens de CoGENT, eux, sont sans doute un peu moins prudents. Il ont réanalysé en 2012 les données de l'expérience CDMS mais avec l'autre partie des détecteurs de CDMS, ceux en germanium et non plus en silicium. Et vous devinez ce qu'ils obtiennent ?  Des événements compatibles avec des interactions de WIMPs, et qui sont cohérents également à la fois avec ceux de CoGENT, et les récents de CDMS-Silicium...

Il y a encore mieux. Les quatre expériences mentionnées étaient toutes rejetées par une cinquième, qui les excluait toutes, il s'agit de XENON100, dont les résultats nuls avec un détecteur à base de xénon liquide permettaient de tracer une courbe d'exclusion qui rendait impossible la véracité des revendications des autres expériences. 
Le détecteur XENON100 (XENON Collaboration)
Vous avez sans doute noté que j'écris à l'imparfait. Car Dan Hooper, physicien très respecté du fameux Center for Particle Astrophysics au Fermi National Accelerator Laboratory vient de publier sur le site de preprints Arxiv une réanalyse des données de XENON100 (La réanalyse de données indépendante à tendance à devenir monnaie courante, et ce n'est pas pour nous déplaire).

D'une manière assez magistrale, Hooper nous montre que les deux événements situés dans la zone d'intérêt et qui avaient été estimés être du bruit de fond par les physiciens de XENON100 (ils avaient calculé qu'il devrait y avoir au maximum 1,2 événements de bruit de fond), possèdent en fait des caractéristiques très anormales.

Déjà, le bruit de fond attendu devait avoir une probabilité de 80% d'être constitué de reculs d'électrons et pour 20% d'interactions de neutrons. En étudiant attentivement la réponse de scintillation de ces deux interactions, Hooper trouve que ça ne ressemble pas du tout à des reculs d'électrons. La probabilité se réduit donc d'autant, ils ne seraient donc pas des électrons, et il resterait 3.5% pour que ces deux événements soient des neutrons.

Ensuite, Hooper observe qu'une caractéristique du signal de ces deux événements (le ratio de l'amplitude du signal S2/S1) est bien plus faible que celui qui est mesuré expérimentalement lorsqu'on approche une source de neutrons du détecteur en phase de calibrage... De plus, les deux signaux se trouvent très près du seuil de détection, alors que les neutrons s'"étalent" sur une grande plage...
Dan Hooper poursuit son étude en calculant ce que donnerait comme signal dans le détecteur XENON100  des WIMPs ayant les caractéristiques de celles déduites des données de CoGENT et CDMS. Vous devinez ? Les événements simulés se retrouvent exactement là où se trouvent les deux événements observés!...
A la lecture du papier, on sent l'auteur qui jubile derrière son clavier, on imagine le sourire de celui qui est sûr de lui... Il semble dire aux physiciens de XENON100 : "vous les aviez sous les yeux et vous n'avez rien vu!...".

Dan Hooper note tout de même un point important (et qui a sans sûrement mis le doute aux physiciens de XENON100) : si la masse attendue est la bonne, en revanche le nombre détecté n'est pas du tout conforme. Il devrait y en avoir cent fois plus avec la masse de ce détecteur et la durée du comptage... Qu'à cela ne tienne, Hooper apporte la preuve que tout peut être réconcilié à condition que quelques paramètres du détecteur XENON100, comme l'efficacité de luminescence par exemple, soient corrigés de leurs incertitudes.

Le conteneur de xénon de LUX dans son réservoir blindage (encore vide) (LBNL)
Pour finir son article plus qu'enthousiaste, Dan Hooper se lance dans la prédiction. Sachant qu'une expérience s'appelant LUX, utilisant elle aussi le xénon liquide, mais avec une masse beaucoup plus importante que XENON100 (350kg au lieu de 100 kg) et avec une efficacité de détection de la lumière de scintillation bien meilleure, est en train de démarrer aux Etats-Unis, il calcule le nombre de "candidats" WIMPs qu'elle devrait détecter. Le nombre est fabuleux : entre 3 et 24 par mois (oui, par mois!).

Je propose donc à toutes les expériences de recherche directe de matière noire d'envoyer très vite la totalité de leurs données à D. Hooper, Fermi National Accelerator Laborator, Batavia, Illinois en attendant l'annonce fracassante dans quelques mois. Peut-être arriverait-il à avancer la date ?


Référence :

Revisiting XENON100's Constraints (and Signals?) For Low-Mass Dark Matter
Dan Hooper
http://arxiv.org/pdf/1306.1790.pdf (7 juin 2013)
http://drericsimon.blogspot.com

Continue reading →
08 Jul 19:36

Start your Linux career by becoming a free software or open source developer

 LinuxCareer: If you are fresh out of uni with a degree in IT or even currently studying, it is the best time to become a free software or open source developer (F/OS) and gain Linux experience.

08 Jul 11:17

Chercher des flux RSS

by Korben

Ce qui manque dans la plupart des lecteurs de flux RSS, c'est un moteur de recherche de flux. Google Reader disposait de cette fonctionnalité, mais maintenant qu'il s'est suicidé, il faut trouver autre chose...

Je vous propose 2 solutions que j'utilise...

La première, c'est le moteur de recherche de Feedly. Je ne vais pas étaler une fois de plus mon amour pour ce service avec lequel je vous bassine depuis presque 1 an, mais il se trouve que Feedly autorise la recherche thématique et par mot clé.

feedly Chercher des flux RSS

La seconde solution s'appelle CTRLQ/RSS et se présente sous la forme d'un moteur de recherche classique qui retourne uniquement flux RSS. L'outil utilise les API de Google Feeds et gère parfaitement les opérateurs Google comme :

  • site:korben.info - Retourne tous les flux RSS d'un site
  • tech site:nytimes.com - Pour trouver tous les flux RSS en rapport avec un sujet précis sur un site donné.
  • allintitle:revision3 - Pour trouver les podcasts de Revision3
  • etc.

instantrss Chercher des flux RSS

Amusez-vous bien !

08 Jul 11:15

Où vont les supercalculateurs ? D'où on vient, quels sont les problèmes, où l'on va (1ère partie)

by lasher

Il y a un bail, j'avais dit que je voulais un jour parler des architectures haute-performance, et de leur potentiel futur. Je me lance donc ici, en espérant que certains se permettront de me corriger là où j'aurai fait des erreurs (sans doute nombreuses).

Je vais diviser ces explications en trois parties. La première (qui suit juste après) va juste faire un rappel sur les architectures « séquentielles » de base. La deuxième partie (à venir très bientôt) s'occupera de décrire les systèmes multi-processeurs et multi-cœurs, ainsi que la raison de leur existence. J'en profiterai pour aussi expliquer les problèmes récurrents liés à l'exploitation de systèmes haute-performance. La dernière partie parlera des efforts effectués en ce moment pour fabriquer les supercalculateurs du futur (disons à l'horizon 2020-2025).

Sommaire

Micro-architecture de base d'un micro-processeur

Le RISC, c'est bien

La plupart des architectures qui nous intéressent sont soit de type RISC (Reduced_instruction_set_computer), soit de type Very Long Instruction Word (VLIW). Bien qu'Intel garde (pour des raisons de compatibilité ascendante) un jeu d'instruction CISC (Complex Instruction Set Computer), en pratique, chaque instruction est ensuite décomposée en micro-instructions qui suivent les principes de RISC.

La plupart des processeurs traitent les données dans l'ordre qui suit :

Instruction Fetch → Instruction Decode → Execute → Memory → Write Back

En d'autres termes : on cherche la prochaine instruction à exécuter (Instruction Fetch, IF) ; puis on la décode (Instruction Decode, ID) ; on l'exécute (EX); si besoin on accède à la mémoire (Mem) ; et enfin on écrit le résultat (soit en mémoire, soit dans les registres).

L'intérêt de ce découpage par étages (en pipeline) est qu'on peut récupérer la prochaine instruction à exécuter pendant qu'on décode celle qui a été récupérée au cycle précédent, et qu'on exécute celle qui est venue encore avant. Ainsi l'exécution de 1000 instructions dans un pipeline de longueur n va prendre 1000+n instructions. Les cinq étages précédemment décrits sont les étages de base d'un processeur RISC. Certains processeurs ont eu jusqu'à 33 étages (comme le Pentium 4 par exemple). De nouveaux étages peuvent être introduits pour la multiplication et l'addition entières par exemple. Les unités de calcul flottant peuvent aussi nécessiter l'addition d'étages additionnels.

Tout un tas d'optimisations existent à ce niveau (si je n'ai pas besoin d'accéder à la mémoire par exemple, je peux simplement « sauter » l'étage mémoire du pipeline pour aller directement écrire les résultats dans les registres).

Cette utilisation d'un pipeline est cruciale. Avant, l'utilisation de jeux d'instructions CISC était nécessaire pour deux raisons :

  1. La mémoire des machines étant extrêmement limitée, proposer un ensemble d'instructions qui permette d'effectuer plusieurs opérations en une permettait de gagner en concision lors de l'écriture du code, et de gagner de précieux octets dans le programme.
  2. Il n'y avait pas réellement de pipeline comme expliqué précédemment. Par contre, chaque instruction CISC était optimisée pour prendre le moins de temps possible.

Tout ça fonctionne impec, à une condition…

L'approche RISC décrite au-dessus permet de plus ou moins garantir l'exécution d'une opération par cycle. Enfin, dans le meilleur des cas. En pratique, un programme a besoin de pouvoir emprunter des chemins différents en fonction des paramètres. Et donc, il doit être possible pour un programme de « sauter » dans une autre partie du programme (oui, on parle bien d'un ifelse …).

Ici, l'exécution au niveau du pipeline est problématique : puisque le if nécessite de savoir si la condition évaluée est vraie, alors il faut:

  1. Évaluer la condition
  2. Vérifier sa valeur de vérité (vrai/faux)
  3. Potentiellement effectuer le branchement vers la partie du programme concernée.

Visiblement, le programme ne peut pas continuer à tourner tant que ces trois étapes ne sont pas accomplies. Et du coup, le pipeline est « bloqué » (« stalled » en anglais). Pas de panique, des gens plutôt malins ont trouvé une réponse à ceci : on va prédire quelle branche de la conditionnelle sera prise. On va appeler ça de la prédiction de branchement, et le mécanisme qui la met en œuvre un prédicteur de branchement. Le fonctionnement est plutôt simple, et c'est bien pour ça qu'il est possible de mettre un mécanisme pareil directement dans le matériel. En gros, le prédicteur va faire un choix arbitraire au début, par exemple tous les ifs sont prédits pris (c'est-à-dire que si on rencontre un if, on considère que la condition qu'il évalue sera considérée vraie par défaut).

Grâce à cela, on n'a pas besoin d'attendre que l'évaluation se termine : on continue l'exécution comme si de rien n'était. Évidemment, l'évaluation de la condition doit être terminée avant que les instructions qui suivent le block if/else et qui ont été exécutées finissent par être réellement effectives.

Deux cas de figure se posent :

  1. La prédiction était juste, et on n'a rien à faire. Les instructions sont réellement effectuées (« retired » en Anglais).
  2. La prédiction était fausse, et il faut purger l'intégralité des étages du pipeline qui suivent le branchement, puisque les résultats qui en découlent sont faux, eux aussi.

Sans trop entrer dans les détails, les prédicteurs de branchements sont mis en œuvre grâce à une machine à états et une petite mémoire. Pour chaque instruction de branchement conditionnel, la mémoire se souvient de l'adresse du if, puis détermine si la condition sera « vraie », « plutôt vraie », « plutôt fausse », ou « fausse » (je simplifie un maximum bien entendu). On part d'un extrême (vrai ou faux). Cette méthode (et ses améliorations) fonctionne plutôt bien pour deux raisons principalement. La première est le fait que prédire que le branchement conditionnel d'une boucle est toujours pris est payant en règle générale (la prédiction est fausse uniquement si la boucle est terminée). La deuxième est que très souvent, les "motifs" d'exécution ("patterns" en anglais) sont similaires d'une exécution d'un programme à une autre. Par exemple, si un if est pris 7 fois sur 10 dans un programme à cause de la nature du programme, le prédicteur de branchement, bien qu'agnostique en ce qui concerne le programme lui-même, aura malgré tout fait gagner un temps précieux en termes d'exécution au final.

Il existe une autre façon de faire : faire de la spéculation de contrôle, via l'utilisation de prédicats. C'est par exemple une approche qu'on retrouve dans les processeurs Itanium, un processeur superscalaire et VLIW produit par Intel, ou certaines versions des processeurs ARM (Architecture_ARM).

Le principe est simple : lorsqu'un branchement conditionnel est rencontré, on peut « prédicater » (barbarisme couramment utilisé dans les labos info) les branches du [if]. Par exemple, quelque chose du genre :

if ( condition1:p0 )
    [p0] instruction1
    [p0] instruction2
else
    [!p0] instruction3
    [!p0] instruction4

Les instructions 1 à 4 vont toutes être exécutées. Cependant, leurs résultats ne seront réellement écrits qu'une fois la condition du if évaluée. Cette façon de faire permet de garantir une absence de stalls, et est souvent utilisée dans les processeurs VLIW (dont je ne parlerai pas trop ici, mais qui en gros prennent des « super-instructions » en entrée, composés de plusieurs instructions, par exemple : { load r1 = @X; load r2 = @X+4; r3 = r5 * r6 })

L'approche de la prédication est très intéressante car en gros le compilateur ou le programmeur expert peuvent décider de ce qu'il faut prédicater ou pas.

Cependant, le bilan énergétique peut être désastreux (après tout, toutes les instructions sont exécutées, qu'elles soient utiles ou pas !).

Je crois qu'on a fait le tour des processeurs scalaires (en fait, la prédication est un mécanisme plutôt utilisé dans le type de processeurs qui va suivre).

Faites-moi le plein de super !

Tout ceci concerne un micro-processeur scalaire, avec un seul pipeline d'instruction. Rien n'empêche de dupliquer les pipelines. C'est d'ailleurs ce qui est fait dans beaucoup de micro-processeurs modernes. On parle de processeur superscalaire.

Ce genre de processeurs a besoin de correctement réserver les resources dont il a besoin : additionneur pour calculer une adresse, UAL (unité arithmétique et logique) pour des calculs sur entiers, unité de calcul flottant (FPU), etc. Il peut bien y avoir deux pipelines, mais cela ne signifie pas qu'il y a deux UAL par exemple… De même, l'accès à la mémoire depuis un micro-processeur n'est peut-être possible que via un seul port, et du coup, si un chargement mémoire (load) doit être effectué dans un pipeline, il est parfaitement possible qu'un autre chargement soit bloquant dans l'autre pipeline. Dans un contexte d'exécution dans l'ordre (in order) la qualité du compilateur/programmeur expert est déterminante pour obtenir un programme qui s'exécute au moins (en fait, il s'agit de correctement ordonnancer le flot d'instructions statiquement).

Il existe plusieurs façon de régler le problème au niveau matériel. L'une d'entre elles est de passer par une méthode nommée scoreboarding. Pour faire simple, lorqu'une instruction écrit dans un registre donné (disons r1), alors l'état de r1 est marqué « occupé ». Les instructions suivantes sont lues ainsi que leurs dépendances sur les différentes ressources : lorsqu'une instruction qui veut lire r1 est émise, elle est placée dans une file d'attente, tant que r1 est « occupé ». Lorsque r1 est de nouveau libre (i.e. l'instruction qui écrit dans r1 est complétée et a signalé le scoreboard), alors l'instruction est « remise en place » dans le flot et peut s'exécuter.

Une autre méthode (bien plus connue) est l'exécution dans le désordre, appelée out-of-order execution en Anglais (OoO). Dans cette méthode, il existe un ensemble de « registres fantômes » ( shadow registers en Anglais). L'idée est de renommer les registres dont les instructions ont besoin, afin de réduire un maximum les dépendances entre instructions. Par exemple :

a = 10;
// ...
b = a * 3;
// ...
a = 0;
// ...
c = a + 12;

Si on suit un schéma de dépendance strict, il existe une anti-dépendance (une dépendance de nommage) entre la première utilisation de a et la deuxième, alors qu'en pratique leur utilisation est complètement indépendante.

En renommant a pour sa seconde utilisation, on permet l'exécution en parallèle de l'affectation à b et c :

a  = 10 || a1 = 0;
// ...
b = a * 3 || c = a1 + 12

L'objectif n'est pas d'expliquer l'intégralité de l'algorithme de Tomasulo ou du renommage de variables pour faire disparaître les fausses dépendances, mais ceci devrait permettre de donner une idée de ce que fait un moteur OoO. Une fois tous ces renommages effectués, il faut ensuite réordonner le flot d'instruction. C'est à cela que sert le « reordering buffer », qui comme son nom l'indique, sérialise le résultat des instructions, écrit dans les « vrais » registres (pour ensuite pouvoir écrire en mémoire par exemple), etc.

Ce dont je ne parlerai pas

Il existe tout un tas d'autres mécanismes qui existent pour augmenter la performance d'un programme. Certains sont destinés à être utilisés par le compilateur; d'autres par le programmeur.

Un exemple de mécanisme à la fonctionnalité identique sur plusieurs architectures différentes, et avec un usage différent est celui des registres rotatifs. Pour faire simple : il s'agit d'un ensemble de registres « glissants » qui sont automatiquement renommés lorsque certaines instructions sont utilisées. Les processeurs de type SPARC utilisent ces registres pour accélérer les changements de contexte entre threads/processus. Lorsqu'un thread est interrompu par le système, nul besoin de sauvegarder ses registres en mémoire (qui est une opération coûteuse) : si une fenêtre de registres est disponible, il suffit de faire « glisser » la fenêtre courante vers la nouvelle fenêtre, et y placer les informations du nouveau thread/de la nouvelle fonction. Encore mieux : si le thread à exécuter était déjà interrompu, il suffit de reglisser vers sa fenêtre (en une instruction ou presque).

L'Itanium utilise le même concept de registres rotatifs pour une autre raison : l'optimisation de boucles via l'utilisation de la technique de pipeline logiciel. Je ne vais pas m'étendre sur la technique. Disons simplement qu'elle permet de maximiser les ressources disponibles et de recouvrir tout un tas de latences (notamment mémoire).

J'ai jusqu'ici soigneusement éviter de parler de la mémoire en détails. Du point de vue du programmeur séquentiel, la mémoire est un ensemble de « cases » ayant un identifiant (une adresse) dans lesquelles on peu lire ou écrire des valeurs. La mémoire est bien entendu nécessaire car les registres sont en quantité limitée (32 ou 64 en moyenne pour les processeurs récents).

En pratique, malgré les progrès effectués pour produire de la mémoire rapide (on en est quand même à la DDR5…), il y a un fossé entre la fréquence d'horloge des micro-processeurs modernes (qui souvent tourne autour de 2 ou 3 GHz) et celle de la mémoire (entre 0,8 et 1,3 GHz). Pour réduire l'impact de la latence due aux accès à la mémoire principale (DRAM), on a logiquement décidé d'insérer des niveaux de mémoire plus rapides. On retrouve la fameuse « antémémoire » que tout le monde appelle « mémoire cache ».

Exploiter la localité des données

La mémoire cache permet d'obtenir deux types d'optimisations :

Localité temporelle

En supposant qu'un ensemble de mots mémoire vont être accédés séquentiellement (ou avec un pas régulier et relativement petit), alors charger une ligne de cache (souvent de 32 ou 64 octets dans les processeurs récents) permet de payer le coût du transfert mémoire (depuis la DRAM vers le cache) une seule fois, mais d'avoir plusieurs mots mémoires disponibles une fois le chargement effectué. Ainsi, si une boucle C suit le schéma d'accès mémoire suivant :

for (int i = 0; i < N-2; i += 2) {
    a[i+2] = f(i);
}

Alors, un entier (généralement 4 octets sur des architectures modernes) sera chargé ainsi (je fais une super simplification avec un pseudo-langage assembleur ultra pas optimisé) :

    ; on considère que r0 vaut toujours 0
    mov r10, $N ; R10 = N
    mov r11, r0 ; i = 0 
    mov r12, @a
    cmp r11, r10
    jge EXIT
LOOP:
    ; Convention à la con : r2, ..., r6 sont les six premiers arguments 
    ; passés aux fonctions ... le reste est passé sur la pile
    ; r1 contient la valeur de retour des fonctions
    mov r2, r11      ; premier argument de f()
    call f           ; r1      = f(i)
    mul r2, r11, $4  ; r2      = i * 4
    add r5, r12, r2  ; calcul de l'adresse dans a: r5 = (a + i * 4)
    store [r5], r1   ; a[i+2]  = r1
    add r2, r2, $2   ; i      += 2
    cmp r11, r10
    jlt LOOP
EXIT:
    ; Suite du programme

Ainsi, si on a une ligne de cache de 64 octets, il y a 16 entiers de 4 octets directement accessibles par une boucle. Du coup, plutôt que charger (et payer) N/2 fois le coût de chargement depuis la DRAM, on va envoyer 16 mots (dont 8 seulement seront utiles ici). Je passe sur les détails architecturaux, mais grâce à la mise en cache, on va passer de latences de plusieurs dizaines voire centaines de cycles (généralement entre 50 et 300 en fonction des architectures), tout à coup on ne paie qu'entre 2 et 10 cycles par accès quand la donnée est située dans le cache.

Bref. Les caches permettent de recouvrir les latences lors des accès mémoire et d'accélérer significativement l'exécution d'un programme. C'est ce qu'on appelle la localité temporelle : payer le coût de chargement d'une ligne de cache permet d'accéder à a[i+2], a[i+4], …, a[i+14], et donc alors que le « temps » avance (c'est-à-dire l'indice de boucle est incrémenté), les données restent « proches » du processeur.

Localité spatiale

La localité spatiale est le fait de pouvoir réutiliser plusieurs mots de la même ligne de cache d'affilée. Je ne m'étends pas dessus, mais en gros, dans un code, si on arrive à réutiliser a[i] plusieurs fois, alors on économise en « espace » (en nombre de registres ou de lignes de cache à utiliser).

À noter qu'il existe aussi des caches pour stocker les instructions les plus fréquemment utilisées, ou même des caches unifiés (qui contiennent code et données).

Reste un problème : lorsqu'une donnée ne se trouve pas en cache (un défaut de cache, communément appelé « cache miss »), alors on paie de nouveau le chargement de 64 octets pour chercher la prochaine ligne de cache, au prix fort.

Spéculer sur le chargement des données

Pour résoudre le problème évoqué précédemment, les concepteurs de micro-processeurs ont ajouté un mécanisme supplémentaire : les préchargeurs de mémoire. En gros, si on connaît les caractéristiques du matériel (latence pour accéder à la DRAM, taille des lignes de caches, etc.), et si le motif d'accès à la mémoire est suffisamment régulier, alors un bon programmeur/compilateur peut insérer des instructions de prefetch aux endroits stratégiques (généralement on en insère plusieurs avant le début d'une boucle, puis juste au début d'une itération). C'est ce qu'on appelle le préchargement logiciel (software prefetching). On peut la retrouver sur la plupart des processeurs modernes (ARM, x86, SPARC, POWER/PowerPC…).

Il existe une variante mise en œuvre de façon purement matérielle, logiquement appelée préchargement matériel (hardware prefetching). Il existe plusieurs variantes, aussi je vais en détailler deux, actuellement utilisées au moins dans certains processeurs x86. La première est appelée par Intel « adjacent line prefetching » (préchargement de ligne adjacente). Lors d'un cache miss, une ligne de cache est (logiquement) chargée depuis la mémoire principale. Cette méthode s'assure que la ligne suivante est chargée elle aussi, car statistiquement il y a de fortes chances que le programme en aura besoin lui aussi. À ma connaissance, tous les processeurs x86 (AMD, Intel) mettent en œuvre cette technique. La seconde technique est au moins utilisée dans les processeurs Intel (je ne me suis pas renseigné pour AMD). Il s'agit du stride prefetcher (préchargement par pas). L'idée est simple : le stride prefetcher retient en mémoire une liste des N dernières adresses accédées par le processeur. Si, pour une adresse donnée, on y accède par pas de K (comme mon a[i+2] de tout à l'heure), alors le prefetcher détectera le motif d'accès, et s'occupera de précharger correctement les lignes de cache correspondantes au pas. Le stride prefetcher est limité aux accès au sein d'une même page mémoire (4 kio ou 4Mio sur x86).

Conclusions

Voilà, j'ai plus ou moins fini mon rappel rapide des micro-processeurs séquentiels. Il faudrait aussi parler des instructions vectorielles (MMX, Streaming SIMD Extensions, AltiVec, etc.), mais ça prendrait encore quelques paragraphes et j'ai la flemme. La prochaine fois, on passe au multi-processeur et multi-cœur !

Lire les commentaires

06 Jul 06:07

GNU/Linux Magazine Hors-Série N°67 – Juillet/Août 2013 – En kiosque

by kathrin
GNU/Linux Magazine Hors-Série N°67 – Juillet/Août 2013 – En kiosque
Le tout nouveau GNU/Linux Magazine HS est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.   Aperçu du magazine Acheter ce numéro Anciens numéros Où trouver GNU/Linux Magazine HS près de chez vous! (Entrez un code postal) Au sommaire de ce numéro : La théorie 04    Qu'est-ce qu'une base de données ? 06    Les bases de [...]