Science : Un peu de science, sans prétention.

Academic Research

I am PhD graduated from Verimag (Synchrone team, Université Grenoble Alpes) and the Kalray company. I worked under the supervision of Pascal Raymond, Matthieu Moy at Verimag and Benoît Dupont de Dinechin at Kalray.

My topic was the parallel code generation from the Synchrous data-flow languages Lustre/Scade to the Kalray MPPA many-core processor.

Research Interests

  • Synchronous data-flow languages (Scade/Lustre)
  • Parallel execution on multi-cores with real-time constraints.
  • Network-on-Chip deadlock-free unicast and multicast routing algorithm.
  • Quality of Service (QoS) on a network-on-Chip.

Publications

Thesis

Fabrication d'un four solaire

Four solaire heaven's flame

Vous avez déjà entendu parler des fours solaires ? Ils correspondent au mode de cuisson le plus écologique et le moins dangereux. Il ne consomme pas d'électricité, et ne provoque pas de cancer comme le feu de bois (nous savons que le feux provoque de graves problème sanitaires dans les pays où le bois est le seul mode de cuisson).

J'en ai réalisé un en 3h cet après-midi. C'est un modèle Heaven's flame. Avec un peu de carton, du papier d'alu et une vitre. En principe on place un petit carton carré dans un grand. En principe le petit carton mesure 30cm x 30cm x 30cm. On le place dans un grand carton avec 7 cm d'isolant (du carton empilé et serré, personnellement j'ai mis de la laine de chanvre) entre les deux.

Il faut ensuite peindre l'intérieur du petit carton en noir mat. On place à l'intérieur les aliments, avec une vitre pour ferme le petit carton (il faut qu'elle jointe et dépasse pour que l'air chaud ne sorte pas).

La réalisation de la parabole est aussi assez simple. Il faut créer des trapèzes avec deux angles à 67°. On recouvre l'intérieur des 4 faces avec du papier d'alu (collé avec de la colle en stick, j'espère que cela tiendra). Plus le trapèze est haut, mieux c'est, le mien fait 60cm, ce qui semble suffisant.

Cela fonctionne en principe très bien, même en France. J'habite le sud, mais je pense que ça fonctionne partout. Il suffit d'avoir du soleil. Pour l'utiliser, on doit l'orienter (et le pencher) vers le soleil. Mon plus grand problème est le vent, mais si je dois cuisiner je mettrai des ficelles et des sardines. Il est préférable de faire chauffer les aliments dans des récipients transparents (les bocaux son parfait).

Une explication détaillée sur http://solarcooking.org/francais/heavens-flame-fr.htm.

Une machine de Turing

Une machine de Turing est une représentation mathématique d'un ordinateur. Elle dispose d'un ruban (tape), sur lequel elle peut se déplacer vers la gauche ou vers la droite, lire et écrire un caractère.
Pour représenter les chiffres, cette machine utilise la base 1. Pour le chiffre 0, elle place un barre (1) sur le ruban, pour représenter le chiffre 2, elle en place 3...

Malgré sa simplicité, cette machine est capable de calculer toutes les fonctions récursives.

Petit exemple :

Un exemple très simple est la fonction Zéro. C'est une fonction constante, qui pour n'importe quel nombre renvoie 0. Rappelons-nous qu'avec notre machine le 0 s'écrit avec une barre (1).

Si nous prenons le ruban contenant le chiffre 4 :
11111000000000000
Nous devrions donc obtenir :
10000000000000000

Analysons le programme :
q0 1 D q1 # On conserve le 1er 1 : pour faire 0
q1 1 0 q2 # Suppression des 1 inutiles
q2 0 D q1

q1 0 0 q3 # Retour à la position initiale
q3 0 G q3

Une machine de Turing dispose d'un algorithme très simple, celui-ci a même été reproduit mécaniquement ou optiquement !
Une instruction se compose de 4 parties :
L'état initial, la condition, l'action et l'état final.
Par exemple pour la première : q0 1 D q1
Au début nous sommes toujours à l'état 0. Le premier élément du ruban est 1.
Notre machine va dont recherche un instruction commençant par q0 1, ensuite elle va exécuter l'instruction contenue dans la seconde partie de l'instruction.
Ici : D q1 : Elle doit donc avancer vers la Droite sur le ruban et passer à l'état q1.
Elle va maintenant recherche une instruction correspondante à l'état q1 et qui a comme condition l'élément courant du ruban : ici 1 et nous exécutons l'action 0 (remplacer l'élément courant du ruban par 0) et passer à l'état q2.

Pour résumer, les actions dont elle dispose sont :
G : Aller à gauche
D : Aller à droite
1 : Écrire un 1
0 : Écrire un 0
et parfois :
* : Écrire une * pour délimiter deux nombres par exemple

Une machine de Turing en Python :

Cette machine est capable de gérer un nombre infini d'état.

# -*- coding: utf-8 -*-
#
# uTuring
#
# Copyright (c) 2010 Amaury GRAILLAT
# Licensed under the GNU GPL license.
# See http://www.gnu.org/licenses/gpl.html
#               amoweb.fr 
#
# File exemple :
# # Zero function                              You can comment a line with #
# q0 1 0 q1       {Stat} {Condition} {Action (1, 0, *, L or R)} {Final stat}
# q1 0 D q0
# q0 0 1 q2
# 
# =1111000000000000000000:0                ={tape}:{Initial stat (optional)}
#

import os
INDD = 0 ; COND = 1 ; ACTN = 2 ; INDF = 3
ruban = [] ; instr = []
k = 0   # position sur le ruban
q = '0' # état

# Trouve l'instruction correspondant à la condition et 
def searchInstruction(q,k) :
	# print "searchInstruction(%s,%s)"%(q,k)
	for i in instr :
		if i[INDD] == q and i[COND] == ruban[k] :
			return i
	return [0,0,0,0]
	
def monospace(str) :
	str = str.replace("\t", " ");
	while str.count("  ") > 0 :
		str = str.replace("  ", " ");
	return str

if __name__ == '__main__' :
	print("Welcome to uTurning : ")

	# Charge le programme depuis le fichier :
	with open("program.txt") as program :
		for instruction in program :
			# Charge le ruban
			if instruction[0:1] == "=" :
				# Partie donnée
				for s in instruction :
					if s == ':' :
						break
					elif s != '\n' and s != '=' :
						ruban.append(s)
				# Position d'origine (facultative)
				if len(instruction.split(':')) > 1 :
					k = int(instruction.split(':')[1])
			# Fin du fichier :
			elif instruction[0:3] == "EOF" :
				break
			# Charge une instruction
			elif instruction != '\n' and instruction[0:1] != "#":
				instruction = monospace(instruction);
				if len(instruction.split(' ')) > 3 :
					qStrI = instruction.split(' ')[0]
					qStrF = instruction.split(' ')[3]
					instr.append([qStrI[1:len(qStrI)], instruction.split(' ')[1],
					instruction.split(' ')[2], qStrF[1:len(qStrF)-1]])
	# Exceptions :
	if len(ruban) == 0 :
		print "TAPE missing : example : =11100000:0"
		exit()
	if len(instr) == 0 :
		print "Instructions missing : example : q0 1 0 q2 "
		exit()

	# Exécution des instructions :
	curInst = searchInstruction(q, k)
	while curInst != [0,0,0,0] :
		# Affiche le ruban :
		print (''.join(ruban)) + " (q" + q + ")"
		print " "*k + "^"

		# Interprête les instructions :
		if curInst[ACTN] == 'D' or curInst[ACTN] == 'R' :
			k = k + 1
		elif curInst[ACTN] == 'G' or curInst[ACTN] == 'L':
			k = k - 1
		elif k < 0 :
			print "Warning ! Out of range : k = -1 ---> k = 0"
		else :
			ruban[k] = curInst[ACTN]

		# Nouvel état 
		q = curInst[INDF]

		curInst = searchInstruction(q, k)
# Affiche le ruban final :
print (''.join(ruban)) + " (q" + q + ")"
print " "*k + "^"

Et quelques exemples (à copier coller dans un fichier program.txt à coté du programme python) :

# Fonction successeur :
q0 1 D q0
q0 0 1 qa
qa 1 G qa
qa 0 D q2
=1111100000000000:0


EOF ----------------------------
# Couples d'entiers :
# Suppression :
q0 1 D q0
Q0 * * Q1
q1 * 0 q2
q1 1 0 q2
q2 0 D q1

Q1 0 0 Q3
Q3 0 G Q3
Q3 1 1 Q4
Q4 1 G Q4
Q4 0 D Q5

=111*1111000000000000000000

Hommage à Claude Lévi-Strauss

J'aimerai rendre un grand hommage à Claude Levi-Strauss, qui s'est éteint le 31 octobre 2009. C'est avec une grande tristesse que j'ai appris ce soir la mort de homme qui a su dompter le racisme.

J'aurai aimé le lire plus tôt plus tôt, cela fait quelques semaine a peine que je connais ce pilier de l'après Guerre (2nd). Je crois que, même si il n'est plus à nos cotés, il nous guidera encore, tellement ses texte semble de plus en plus actuels.

J'espère que son œuvre serra lu, et relu, encore dans de nombreuses années. En cette période de débat sur l'identité national, je pense qu'il est plus que nécessaire de rappeler quelques concepts de son livre Race et Histoire. À méditer :

  • L'Éthnocentrisme, consiste à rejeter tout ce qui lui est trop éloigné, qui ne correspond à la norme dans laquelle on vit, hors de l'humanité.
  • Le Faux Évolutionnisme c'est faire croire à une acceptation des différences tout en essayant de les supprimer.
  • Les différences entre les apports culturels des différents continents viennent du contexte géographique ou sociologique et non des distinctions anatomiques entre les « noirs », les « jaunes » ou les « blancs ».
Je n'ai pas la prétention de résumer l'œuvre de Claude dans ces trois éléments, mais uniquement vous donner des passages qui semblent en plein dans le débat actuel.

Merci Claude Lévi-Strauss.

Les mouvements anti-éoliennes. Reportage sur des anti-écologistes

Attention, cet article est ancien et peux contenir des erreurs de calcul (ou de physique) que je n'ai pas le temps de corriger.

J'aimerai trouver une éolienne pas trop cher qui me permettrais de produire entre 5 et 10kWh. J'ai trouvé quelques sites, mais pas souvent de prix, j'appellerai cet après-midi pour en savoir plus.

Le sujet de cet article n'est pas vraiment l'installation d'éoliennes. Mais en cherchant des sites pour acheter des génératrices j'ai trouvé des sites contre les éoliennes !
Ce qui pose le plus de problème, c'est que ces sites sont, soit-disant, POUR les énergies renouvelables. Comment peut-on feindre d'être pour les énergies renouvelables tout en étant contre la technologie renouvelable la plus fiable.

Prenons par exemple le site www.ventdecolere.org appartenant à la Fédération Nationale Vent de Colère ! (je ne met exprès pas de lien pour ne pas leur donner du rank). Déjà, le site lui-même n'est pas très poli. Il m'a pris pour une demi-personne !

ventdecolere prend ses visiteurs pour des demi-personnes

Jusque là, je vais être de bonne fois, je vais leur pardonner. Restons objectif.

Nous allons regarder les arguments un à un. Les passages en italiques sont intégralement issus du site www.ventdecolere.org.

Le vortex : Absence d’étude de l’impact du sillage des éoliennes sur leur lieu d’implantation, incidences possibles sur l'agriculture ou les feux de forêts (Informations recueillies par Vent de Colère). => Oui vous avez raison, absence d'étude (argument rhétorique). L'impact des éoliennes a été testés sur le long terme puisque cette technologie est utilisée dans les moulins à vent depuis des siècles. Pour ce qui est des feux de forêts, les éoliennes ne sont jamais placées à proximité des forêts tout simplement parce qu'elles feraient bouclier au vent. Elles sont souvent placées en haut de collines ou dans des champs.

Le bruit des éoliennes : Dans cette partie, le site internet nous propose un PDF sur l'impact sonore des éoliennes. Ce document a été réalisé en présence d'un Expert à la Cour d’Appel de Versailles & Ingénieur Conseil en Acoustique.

Comment expliquer qu’à proximité de certains sites, les poules ne pondent plus, les moutons se jettent dans les barrières ? Je donne un sandwish jambon bacon à celui qui me trouve un mouton qui se jette contre une barrière ! Mais gardons notre sérieux. Il faut noter qu'à la campagne "un certain bruit de fond est toujours présent" autour des 30dB, le cri d'un coq se situe entre 50 et 60dB (source : lefigaro.fr).
Ce qui est assez étonnant, c'est que la documentation du site ne mentionne jamais de chiffre. Je me suis donc renseigné.
Une éolienne génèrerait 45dB à 250m (source: thewindpower.net)

Un autre facteur dont le site n'a pas parlé est l'éloignement des éoliennes avec les habitations. Reprenons notre chiffre de 45dB à 250m de l'éolienne. On sais que l'on perd 6 dB à chaque fois que l'on double la distance (source: sonorisation-spectacle.org), ce qui veut dire qu'à 500m d'une éolienne (c'est souvent la distance minimum qui sépare les habitation de ce type de construction) on n'"entend" plus que 39dB c'est-a-dire le "bruit d'une forêt" (source: wikipedia.org).
Le dernier facteur auquel le site (décidément incomplet) n'a pas fait référence, est le bruit du vent lui même. Le bruit des feuilles d'arbres qui bougent dans le vent est largement supérieur au bruit engendré par une éolienne.

Les infrasons, nuisances rédhibitoires : Ici nous avons affaire à un autre document, une étude de Claude Renard. Ce document m'a finalement paru très intéressant. Il explique que les infrasons ont une atténuation plus faible que les sons plus aigus (chose que j'avais déjà lu sur d'autres sites). Cependant il n'exprime que des généralités, et ne donne toujours pas de chiffres pour le éoliennes. Dans son étude ils parle aussi de malaises engendrés par une exposition de l’homme aux infrasons. Si ces malaises s'avèrent vrai, coupez alors votre climatisation (ce qui sera d'ailleurs un acte écologique) car elle risque de vous donner des troubles du même type que le mal de mer. Par la même occasion faite éradiquer les 3 derniers éléphants et girafes qui restent dans la savane car ils vous empêcheront de dormir, de réfléchir, de [vous] concentrer sur une tâche.

Les Centrales Éoliennes et la Sécurité Publique : Un autre PDF. Voici un document de 30 pages nous prouvant pourquoi il faut imposer une distance minimum de sécurité. Ce document n'est finalement pas contre les éoliennes, mais contre un "laxisme" (invérifié) de l'état. Pour exemple l'auteur de ce rapport nous montre une éolienne qui aurait été placé trop près d'une voie ferrée et que si elle s'effondrait elle provoquerait un accident. Deux choses, l'une il faut que le vent aille dans le sens de la voie pour que l'éolienne s'effondre sur celle-ci. L'autre chose étant qu'il y a moins de risque de voir une aéro-génératrice s'effondrer qu'un arbre. Sans compter que ces constructions sont vérifiées régulièrement et qu'en cas de fort intempéries, les trains ne circulent souvent pas. Ils parlent aussi du risque de détachement de glaçons des pales en cas de gèle. Dans ce cas, il suffit de mettre des panneaux comme dans les stations de ski nous invitons à ne pas s'approcher !

Impacts Sanitaires du Bruit des Centrales Éoliennes Industrielles, Laxisme de la Réglementation : Ça ressemble tout simplement à un mélange des deux paragraphes précédents.

Aimez-vous les oiseaux ? Sachez que les oiseaux ne sont pas idiots et ne foncent pas tout droit dans les bâtiments ! Ils évitent donc facilement les éoliennes qui sont d'ailleurs construites hors des grands couloirs de migrations. La question que j'aurai envie de poser aux gérants de ce site est Aimez-vous les poissons ? Car si nous prenons exemple sur la centrale nucléaire de Gravelines, son refroidissement est assuré par la mer : sur un périmètre de 1km² la température de l'eau de mer augmente et rien ne nous prouve que cela n'a pas d'impact sur de développement des poissons.

Vous avez donc vu que les arguments avancés par ces sites ne sont pas forcément bien étudiés. Et même s'il s'avérait vrais (ce qui parait peu probable après ma démonstration), que proposent-ils en remplacement ?