lundi 8 avril 2013

Parallélisation et business model

Vous n'êtes peut-être pas des experts du calcul scientifique, mais si vous vous intéressez à l'informatique, vous avez certainement entendu parler, sous une forme ou sous une autre, de parallélisation. Ne serait-ce que parce que les processeurs (ces "cerveaux" d'ordinateur) de dernière génération sont souvent multi-cœur.
Je vais dans cet article vous expliquer comment on peut s'inspirer du calcul parallèle pour concevoir de nouveaux business models.

La parallélisation, késako ?

Commençons par le plus courant, le processeur multi-cœur.
Pour augmenter les performances d'un ordinateur, on peut soit augmenter la puissance d'un processeur élémentaire (un "cœur"), ce qui est difficile, soit mettre deux ou plusieurs cœurs dans un même processeur, et répartir la charge de calcul sur ces cœurs. En gros, c'est plus facile de demander à une équipe de rugby amateur de pousser une voiture en panne que d'entraîner un surhomme pour faire la même chose. Il est courant de trouver deux, voire quatre tels cœurs dans le processeur des ordinateurs actuels.
Génial, me direz-vous, qu'attend-on pour en mettre des dizaines, voire des centaines ?
Eh bien, on n'a pas attendu.
Les scientifiques et autres ingénieurs ont depuis longtemps perçu le potentiel d'utiliser pleins de processeurs pour faire rapidement des calculs qui seraient tout bonnement infaisables en une vie humaine avec un seul processeur. Ils ont donc développé des architectures informatiques qui permettent à un grand nombre de processeurs de travailler ensemble. C'est ce qu'on appelle des clusters.
La difficulté n'est pas tant dans le matériel informatique (les ordinateurs d'aujourd'hui sont assez bon marché, et internet relie des milliards d'ordinateurs dans le monde) que dans la répartition du calcul.
En effet, si vous avez cent processeurs et mille calculs différents à faire, pas de souci. Il suffit d'affecter dix calculs à chaque processeur, et vous avez les résultats cent fois plus vite. Mais si vous avez qu'un seul calcul à faire (une addition), vous ne pouvez pas décomposer cette opération en cent opérations indépendantes : vous serez obligé de la confier à un seul processeur parmi les cent, et vous n'aurez strictement rien gagné.
Cet exemple est un cas particulier d'une loi relativement générale dans le calcul parallèle : il y a des tâches parallélisables et des tâches qu'on ne peut pas répartir, et ce sont ces dernières qui limitent la performance. Plus il y a de tâches parallélisables, plus vous pouvez espérer gagner en vitesse, mais il y a une limite à l'accélération. C'est la loi d'Amdahl.
Prenons un exemple simple. Supposons qu'un processeur seul mette 100 minutes à réaliser un très long calcul, avec 50% de tâches parallélisables. Il y a donc 50 minutes de tâches qu'on ne peut pas accélérer, et 50 minutes que l'on peut fortement réduire. Si j'ai deux processeurs, il me faudra seulement 50+(50/2)=75 minutes ; si j'en ai dix, 50+(50/10) = 55 minutes ; si j'en ai mille, 50+(50/1000)=50,05 minutes.
On le voit, cela ne sert quasiment à rien d'avoir beaucoup de processeurs dans un tel cas. Et comme cette situation est plutôt courante, les processeurs vendus dans le commerce n'embarquent pas beaucoup de cœurs. Il n'y a qu'en travaillant intelligemment sur l'algorithme qu'on arrive à réduire fortement les tâches non parallélisables, et un tel travail ne peut se faire que sur des problèmes très spécifiques, très gourmands en ressources, et qui méritent qu'on y passe beaucoup de temps.

Un business model inspiré du calcul parallèle

Vous allez me dire, quel rapport avec un business model ? J'y viens.
Lorsqu'on pense à un produit à commercialiser, on imagine un objet physique qui va être acheté par un seul utilisateur.
Mais il existe pleins de produits moins matériels, comme une œuvre littéraire, qui peuvent être consommés par un grand nombre de personnes. Et l'air du temps étant à la dématérialisation, les exemples fleurissent : livres électroniques, réseaux sociaux, logiciels divers et variés...
Je connais en gros un seul système de tarification pour de tels produits immatériels : la vente de l'usage du produit à un prix fixe pour chaque utilisateur. Il y a évidemment des variantes (promotions, parrainages...) mais on part du principe que le prix de vente est indépendant du nombre d'utilisateurs.
Cela fait l'affaire des vendeurs de logiciels : ne vous étonnez pas si Apple et Google sont des multinationales très profitables. Mais cela a pour conséquence un piratage massif de ces produits.
Je vous propose maintenant l'idée suivante : considérons un business model qui couvrirait exactement les frais de production.
On peut décomposer ces frais en frais fixes F (le salaire des employés, les frais d'expert-comptable...) et en frais variables V (la matière première, l'énergie, les emballages...) plus ou moins proportionnels au nombre de ventes N : on peut traduire ça par l'égalité V = Nv.
Plus il y a de ventes, plus les frais variables augmentent proportionnellement à N, mais les frais fixes restent inchangés. Le chiffre d'affaires doit donc atteindre leur somme F+Nv, et pour en déduire le prix de vente p, il faut diviser par N. On obtient donc p = v+F/N. C'est la formule d'Amdahl. L'analogie est claire : les frais fixes sont l'équivalent des tâches parallélisables, et les frais variables sont le pendant des tâches qu'on ne peut pas répartir.
Poursuivons l'analyse. Le plus intéressant, c'est que le prix diminue avec le nombre de ventes. En pratique, cela signifie que vous remboursez de l'argent à vos précédents acheteurs à chaque nouvelle vente réalisée.
Voilà un levier intéressant : l'acheteur devient impliqué dans les ventes. Plus le produit se vend, moins il lui coûte : il aura donc intérêt à en parler autour de lui, à encourager ses amis à l'imiter. Il fera "gratuitement" la promotion du produit, sans que cela ne coûte à l'entreprise qui commercialise.
Sans être aussi radical que cela, l'idée d'un prix qui décroît avec le volume des ventes, et d'un remboursement partiel des premiers acheteurs avec l'augmentation des ventes, me paraît être très innovant. Qui l'adoptera ?