Dette indlæg er alene udtryk for skribentens egen holdning.

Elektriske får med Amazons EC2

11. september 2012 kl. 08:0913
Artiklen er ældre end 30 dage

Mandelbrot og julia-sæt – jeg ved ikke hvordan du har det med dem, men jeg har altid været fascineret af den kompleksitet og skønhed, som gemte sig bag de relativt simple matematiske formler. De var store i de tidlige 90'ere men siden har jeg ikke hørt meget til dem.

Emnet her ligger langt fra hvad jeg ellers blogger om, men i sommerferien faldt jeg over et projekt kaldet Electric Sheep som benytter sig af en videreudvikling af matematikken i form af fractal flames, kombineret med distribueret beregning á la SETI@home eller Folding@home og en genetisk algoritme til at kombinere "DNA" fra forskellige flames til nye generation af elektroniske får, baseret på bedømmelser fra det sociale netværk omkring projektet. Projektet er med andre ord en kombination af hotte buzz-teknologier fra de sidste 10-15 år, undtaget Cloud Computing, men det kommer jeg tilbage til.

Her er et eksempel på et elektrisk får, bestående af et antal fractal flames i kombination:

Hvorfor kaldes det i øvrigt elektriske får? Det er en reference til Philip K. Dick's "Drømmer androider om elektriske får?" Hvis du ikke kender ham, er det et tegn på manglende (nørde-)dannelse, for han givet inspiration til film som Blade Runner, Minority Report, Total Recall og The Adjustment Bureau. Så mens din PC dagdrømmer, regner screen-saveren fra projektet på små smukke film bestående af sekvenser af billeder som ovenstående.

Artiklen fortsætter efter annoncen

De videoer, jeg kunne finde af elektriske får, var skuffende i kvalitet og længde, og da ferien var begyndt, ville jeg selv forsøge mig med at lave en film. En opstart fra ingenting var ikke helt nem, men jeg fik da fundet frem til at bruge Apophysis med et script som jeg måtte tilrette uden at have dokumentationen for sproget. Efter at have udvalgt et bestemt får var det bare at sætte min bærbare i gang med beregningerne.

Ambitionen fejlede ikke noget: Opløsningen skulle være tilpas høj (1600*900) og kvaliteten af hvert billede god, hvilket vil sige med omkring 10.000 iterationer pr. styk. For at fremhæve den nærmest hypnotiske effekt af en langsomt hvirvlende vortex, satte jeg maskinen til at beregne 7200 billeder hver med en 20'ende del grads rotation, hvilket ville danne en video som, når den blev loopet, ville roterer i det uendelige.

De fire CPU-tråde på min bærbare gik alle op på 100%, strømforsyningen begyndte at blive lun og så var det bare at vente. Bagefter ville jeg sætte billederne sammen til en film af ca. fire minutters varighed (med VirtualDub).
Jeg havde en luftig ide om at bagefter ville være 3-4 dage senere. Men efter flere timer hvor kun nogle få billeder var blevet færdige, gik det op for mig at bagefter ville være ... omkring jul.

Amazon Elastic Cloud – krympede computere i metermål

Som sagt manglede blot Cloud Computing fra listen af buzz-teknologier som allerede var afprøvet i forbindelse med projektet. Det ville jeg råde bod på i et forsøg på at speede processen op. Man skal jo ikke blive trist bare fordi man mangler lidt computerkraft – den kan jo købes i skyen ad libitum til billige penge. Skyen, her kommer jeg.

Artiklen fortsætter efter annoncen

Valget faldt ikke overraskende på Amazons cloud. Serveren, jeg forsøgte mig med, var en mellemstørrelse server, markedsført som velegenet til CPU-krævende opgaver, til 28,5 cent i timen. Det lyder jo ikke umiddelbart dyrt. (For de teknik-interesserede var det en c1.medium beskrevet som "5 EC2 Compute Units (2 virtual cores with 2.5 EC2 Compute Units each)").

Uden af slække på ambitionen om kvaliteten af filmen, satte jeg det virtuelle monster i sving og med en dropbox synkroniseret med min egen bærbare, kunne jeg løbende følge med i produktionen.

Den første skuffelse var, at hvert billede tog tre gange så lang tid at lave som på min bærbare. En "rigtig" server i Amazons sky var altså meget langsommere end min usexede Lenovo. Lidt søgning afslørede, at en EC2 Compute Unit blot svarer til en ældre processor, en 1.0-1.2 GHz 2007 Opteron eller 2007 Xeon processor som beskrevet her).

Men ingen panik, det glade budskab fra cloud computing er jo, at jeg bare kunne starte et vilkårligt antal instanser op, fordele opgaven imellem dem og så blive færdig i løbet af få timer i stedet for flere måneder. Konceptet styrede.

Den anden skuffelse kom dog, da jeg regnede ud at filmen ville koste over 2.000 $ i server-leje at få lavet.

Der har været noget debat om dels størrelsen på en Compute Unit og dels om Moores lov i relation til prisudvikling holder for Cloud Computing, i hvert fald hos Amazon, hvor en observatør havde fundet at prisudviklingen var tæt på nul – langt fra den halvering over 18 måneder, som (måske?) kunne forventes. En ting er sikker: For CPU-intensive hobby-projekter kan skyen blive for dyr og vil også være det i årevis fra nu, Moores lov eller ej.

Hvad blev så enden på projektet?
I den ideelle verden vil jeg lave en film med billeder i 3200*2400 (22MB) eller 6400*4800 (88 MB). Men for at få en film parat inden for rimelig tid til rimelige penge måtte jeg gå ned i ambitionsniveau. Efter en halv uges CPU-tid, dels på min bærbare, dels hos Amazon, blev dette resultatet:

[video: http://www.youtube.com/watch?v=JTCCYGQiwE0]

13 kommentarer.  Hop til debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
13
13. september 2012 kl. 10:54

Vil du dele dit tilrettede script?

12
13. september 2012 kl. 10:15

Jeg har lige prøvet at downloade original videoen fra Vimeo, og så vidt jeg kan se med VLC har den en bitrate på 140 Mbit, hvilket er absurt højt. Normalt når jeg laver videoer i 1080p, 30 fps, så har jeg en bitrate på 8-10 Mbit. Dette forklarer også hvorfor din video fylder så meget. Vimeo giver også mulighed for at downloade videoen som en .mp4 fil de har reencoded, den fylder kun 8 MB. Jeg tror du skal have kigget lidt på indstillingerne i din video encoder.

8
11. september 2012 kl. 14:49

Peter, er der en grund til at du ikke valgte Cluster Compute instanser til dit forsøg?

11
12. september 2012 kl. 13:23

Mogens, jeg fik slet ikke svaret dig: Det var simpelthen fordi jeg ikke fik øje på muligheden. Jeg er lidt på vagt her, da den underliggende CPU-arkitktur er vigtig: Apophysis kun understøtter otte tråde så hvis den enkelte fysiske processor ikke er kraftig nok er det nok tvivlsom om programmet får fuld nytte af maskinen.

7
11. september 2012 kl. 14:46

Skulle også til at anbefale Vimeo. Kunne en løsning ikke være at foretage en "rimelig" komprimering hjemmefra, for at nå ned på de 500 mb? To gb lyder lidt overkill som kilde til en streaming video (på 30 sekunder).

9
11. september 2012 kl. 19:04

Ja, det var netop begræsningen på Vimeo som gjorde at jeg ikke kunne bruge den. Men ideen om at komprimere bare lidt for at nå under 500 MB lyder faktisk helt godt. Det prøver jeg.

5
11. september 2012 kl. 12:14

Den indlejrede video er ikke specielt tydelig - men prøv at sætte den op til HD - så ser det ud af lidt mere.

Men jeg kan dog se at YouTubes komprimering nok er bedre til "stabil baggrund - bevægelig forgrund" eller "vandrette bevægelser" end til en roterende flame-animation med mange detajler ud over hele billedet.

Bud på en bedre video-delingsplatform modtages gerne (obs - filen er originalt på ca. 2 GB)

6
11. september 2012 kl. 14:18

Ja, Youtube komprimerer gerne alt skønhed ud af videoer. Jeg syntes generelt videoer på Vimeo ser pænere ud, de har dog en begrænsning på at man højest må uploade 500 MB om ugen med en gratis konto :/

3
11. september 2012 kl. 10:28

Har du overvejet at sætte GPU'en til at regne på det i stedet? (selvfølgelig ikke med din laptop host) men hvis du har en stationær med et okay gfx, så burde du kunne skære tiden ned. Mit eget Ati Radeon HD5970 har tæt på 5 teraflops :) Tjek dette opensource projekt:

http://sourceforge.net/projects/flam4/files/Flam4OCL/

4
11. september 2012 kl. 10:39

Jeg kiggede lidt på flam3 men den var lidt for kryptisk. Flam4 lyder spændende selvom min stationære er meeget gammel.

(Josef, og en Lenovo er altså ... usexet! Men selvfølgelig er den meget praktisk. Og så er den sort på sådan en gnidret måde)

2
11. september 2012 kl. 09:00

En Lenovo/Thinkpad er per definition og af natur sexet.

Please hand in your nerd club membership card.

1
11. september 2012 kl. 08:52

Det er sgu sejt nok! Har ikke set noget om fraktal flames før, men jeg kan forestille mig man hurtigt får brugt lidt tid på at tweake parametre og den slags.