Home

User Manual for the Free Software Tools-Based Flow for

image

Contents

1. To facilitate the data exchange with the virtual machine you may allow the virtual machine access your host file system On the Shared Folders tab HEAP D3 2 final doc Page 14 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial General Shared Folders System Folders List Display Storage Name Path Auto Mount Access FF l lt v Machine Folders Audio ROOT Yes Full Fa me Network 43 Serial Ports 4 USB Shared Folders L Lists all shared folders accessible to this machine Use net use x wboxsvrishare to access a shared folder named share from a DOS like OS or mount vboxsf share mount_point to access it from a Linux OS This feature requires Guest Additions Help Cancel OK o a Click on the add E button on the right and input the folder data please refer to VirtualBox docu mentation or annex 8 for additional details Folder Path lt not selected gt Read only Auto mount Cancel http www virtualbox org manual ch04 html sharedfolders HEAP D3 2 final doc Page 15 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and
2. One of these is dosimplify It transforms all program expressions into three address mode 1 e in a concatenation of simple expressions with at most three elementary operands either simple variables or simple pointers to memory locations This step is very important to ensure the correctness of the HEAP API annotations Another CIL extension used without changes is dooneRet This extension transforms the function body CFG such way as to ensure there is only one return point Also this step is very important to ensure the correctness of the HEAP API annotations In addition to these full or partial code reuse cases new functionality required for the HEAP project was added such as annotation of the transfer actual function call arguments and return value anno tation of the dynamic memory allocation free annotation of all variable declarations automatic for each time a function is entered static or global only the first time a function in a source file is en tered An example of C source code and its annotated model is presented in annex 10 2 2 Run Time Data Dependency Tracer Library The tracer library was written first in Perl to allow fast prototyping of data structures and algorithms for analysis Once the structure was consolidated it was fully rewritten in C to reduce the run time about 16x speed increase with respect to the Perl version and about 450x slower than the normal application run The tracer library is linked
3. Language CIL is written in ocaml and provides a high level representation along with a set of tools that facilitate the analysis and the source to source transformations of C programs CIL is both lower level than abstract syntax trees by clarifying ambiguous constructs and removing redundant ones and also higher level than typical intermediate languages designed for compilation by maintaining types and a close relationship with the source program The main advantage of CIL is that it compiles all valid C programs into a few core constructs with very clean semantics Also CIL has a syntax directed type system that makes it easy to analyse and manipulate C programs Further more the CIL front end is able to process not only ANSI C programs but also those using Microsoft C or GNU C extensions A new code analysis and instrumentation module was written for the HEAP project Some suitable existing CIL modules were merged and extended to implement the required functionality for code analysis and annotation 2 1 1 HEAP Specific Code Analysis and Annotations The annotator for the HEAP project reuses as much as possible the existing CIL engines for code analysis transformation and annotation This brings two major benefits First it allows focusing more project development efforts towards project specific tasks Second it benefits the overall quali http sourceforge net projects cil http caml inria fr ocaml HEAP D3 2 final doc Pa
4. Lazarescu Annotation and tracing tools details HEAP D3 2 final doc Page 4 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial Table of contents De TCE OA MCOION sssivssiecaestsessasrictaumsstanewestedessesacseusevendaueesdessiexseaveuesenedaseseuasesensadesausssdeseasassessustuiasencadessueedies 7 Pes POON CNA E A E E aaa Aa a 7 2 1 Source Code Analysis and Instrumentation en era ee anna nana naaa 7 2 1 1 HEAP Specific Code Analysis and Annotations cc ssseesesssseececceececeeeeeceeeaaaaaeeeeneeeeeess 7 2 2 Run Time Data Dependency Tracer Library nennen nana anna aaa S Zac TIE A E E A a a a 9 LA Data Dependency Visa Za Onn nn niii EA A AA A aaaea 9 3 Demo Virtual Machine iss dassacevscsacensssdcecssesiacencsadescesisneciscsencuncsasceessessncscassecssssadessicdasecencsaseaassedesssesiaes 9 Dells VATU MOCNE UD seta A E EE EE Aa 10 3 2 Optional Virtual Machine Set up mene n nn an nan en nana ann anna a ann ena n naaa a aaana 15 Ida Ne Virinal Ma sansa nn sint nar a E EEN OEA NTE ese ai 17 d Derino Proje i aisinn dee E E 18 4 Load he Demo TTO ARA RA E TE E OOOO AA AR 18 ED IMI AS DEMOA NS S oer AAA EPA E AAA 20 4 3 Run the Data Dependency Visualization nennen anna naaa aaaaan ZZ Sa ING W EO A A ii A A A 26 6 Logout and
5. Symbolic name of the data hash index int index Element index for vectors if positive unsigned int times How many times it was accessed UT_hash_handle hh Hash internal data dt_read_mem_name_h_t typedef struct dt_read_mem_h_s unsigned int addr Memory address of the data hash index dt_read_mem_name_h_t names_h Data access descriptions UT_hash_handle hh Hash internal data dt_read_mem_h_t typedef struct dt_read_h_s unsigned int id Instruction unique ID hash index dt_read_mem_h_t mems_h Description of the data transfer location Ul hash handle hh Hash internal data dt read h t typedef struct dt h s unsigned int id Instruction unique ID hash index a dt_read_h_t reads_h Read instructions for the data written by this instruction UT_hash_handle hh Hash internal data dt h t static dt_h_t dt_h NULL Data transfer table connect writes with reads HEAP D3 2 final doc Page 29 of 40 ij l FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the j j j j j Parallelism in the Program Execution User Manual and Tutorial kx Memory write table key memory location address value unique ID of the last instruction that wrote here ng typedef struct mwt_h_s unsigned int addr Memory location address hash index unsigned
6. templates Select Console application as this 1s the most common for general purposes and click Go HEAP D3 2 final doc Page 33 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial New from template LX Category v o amp p ARM Project AVR Project Code Blocks Console plugin application S o D D application Dynamic Link Empty project Library Build targets Files Custom User templates 3 3 3 g FLTK project Fortran DLL Fortran Fortran library application SLUT Fe oR View as Get eect Large icons GLUT project GTK project Irrlicht project amp List TIP Try right clicking an item 1 Select a wizard type first on the left 2 Select a specific wizard from the main window filter by categories if needed 3 Press Go The console application wizard will appear next Continue through the menus selecting C when prompted for a language In the next screen give the project a name and type or select a destination folder As seen below Code Blocks will generate the remaining entries from these two HEAP D3 2 final doc Page 34 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial Console application Please select the folder where you w
7. Off the VM At the end of a work session the VM can be placed in a safe state in two ways 1 by turning it off 2 by suspending it The VM was configured in such a way that it turns off when the heapdemouser logs out using the menu System gt Log Out heapdemouser E a S Be Preferences gt Log out of this system now You are currently logged in as HEAP demo user You will be automatically logged out in 50 seconds Cancel Log Out The VM can be also suspended Once suspended the VM can be quickly resumed to its last state thus a working session can be resumed this way any number of times 5 http wiki codeblocks org index php title Creating_a_new_project HEAP D3 2 final doc Page 27 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial The fastest way to suspend the VM is to use the VirtualBox short cuts Press Right Ctrl Q right control key is the default VirtualBox Host Key for more details please refer to VirtualBox docu mentation and a VirtualBox dialogue window appears f You want to f Save the machine state Send the shutdown signal y Power off the machine Select Save the machine state and click OK To resume a saved VM select the HEAP VM click start in the VirtualBox control panel File Machine Help DBPL New Settings Start D
8. Search Project Build Debug we mith Tools Plugins DoxyBlocks Settings File Edit View Search Project Build Debug wxdmith KIAN yi asin Fw Ale 9 AAi D Open zg TE Empty file Ctrl Shift N l Open with hex editor Project Mana Class Open workspace Build target qafi Project na he 54 Build target Recent files j Custom File Import project From template Custom Nassi Shneiderman diagram From template E Save file as i Nassi Shneiderman diagram A Save al files Ctrl Shift 5 Select C C source and click Go Continue through the following dialogues very much like the original project creation selecting C when prompted for a language On the final page you will be presented with several options The first box will determine the new file name and location as noted the full path is required You may optionally use the corresponding button to bring up a file browser window to save the file s location Checking Add file to active project will store the file name in the Sources folder of the Projects tab of the Management panel Checking any of the build targets will alert Code Blocks that the file should be compiled and linked into the selected target s This can be useful if for example the file contains debug specific code as it will allow the inclusion or exclusion from the appropriate build target In this example however the hello function is of key importance and is required in
9. Tutorial 3 2 Optional Virtual Machine Set up Also in the virtual machine settings the audio interface can be disabled for a slightly faster VM Startup E General Audio a System Display _ Enable Audio Storage Host Audio Driver Audio Controller P Network Serial Ports USB Shared Folders Select a settings category from the list on the left hand side and move the mouse over a settings item to get more information Help Cancel OK The VM ssh port can be mapped by the VM NAT to a guest port using the Port Forwarding but ton under Advanced pane in the Network settings HEAP D3 2 final doc Page 16 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial Name Protocol Host IP Host Port Guest IP Guest Port a TCP ae Click on add button and fill the fields For instance the setting in the figure above connects the host port 20002 to the guest ssh port 22 To connect on the guest with this setting issue on a linux host ssh heapdemouser localhost p 20002 3 3 Start of the Virtual Machine To start the VM select it from the list and click on the Start button File Machine Help New Settings Start Discard A window will open for each of the two virtual monitors defined in the settings One of them is at tached to the VM console and will display the boot up
10. a home heapdemouser projects mjpeg_par mjpeg_par c UTF 8 Line 233 Column 23 Insert Read Write default O2 PEO O H Right ctr HEAP D3 2 final doc Page 20 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial Now start the visualization program by clicking on the HEAP entry of the top menu and then on Run The ZGR Viewer visualizer window will open Machine View Devices Help File View Help O2 POL O Wright ctr Arrange the IDE and the ZGRV windows on the screen to have a clear view of both If you have two monitors attached to the host machine you may wish to move the ZGRV window on the second monitor of the VM and then move this VM second monitor window on the second physical monitor of the host 4 2 Run the Demo Analysis The analysis tool chain is run from the command line A script is provided that loosely glues together the whole chain Note the instrumented program runs about 450 times slower than the native run Open a terminal window by clicking on the icon in the top panel of the workspace and go into the directory of the mjpeg_par project of the IDE HEAP D3 2 final doc Page 21 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial heapdemouseragdemoheap projects mjpeq
11. dependency tracer e finally the mv command renames the file with the generated data to the name expected by the ZGR Viewer based visualizer 4 3 Run the Data Dependency Visualization After each operation that can affect the visualization e g change the folding in the IDE editor up date the visualizer data the visualizer should be informed on the update Access the HEAP menu on the top menu of the IDE and click on the Update entry HEAP D3 2 final doc Page 23 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial Mi Run Ctrlt ZGRViewer tmp zgrviewerDotFile3462248229219253419 gv File View Help Pn ae oe oe SSS oa e wn roe TOTO a es Ba Ta MANAN Mema Ta Ieee ar CENTI 7 z ag A na ie Fee Y ue ir in alee puhi pi eee area a f Yas md om em ro Each ellipse represents a program instruction that was executed The ellipse colour can go from white seldom executed to intense red most executed Each directed arch that connects two ellipses represents a data dependency between the two instruc tions The arch colour can go from light cyan for seldom occurring dependencies to intense red for most occurring dependencies and at the same time also the arch width is modulated by the same factor the widest for the most occurring The visualizer implements a few ha
12. heap cil ocaml mjpeg_par mjpeg_par c 22 while 1 lt 2 i 0 heap_write imarw_insn_id_local_offset 4 i amp i 4 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 24 while i lt 2 4 heap_arg_read imarw_insn_id_local_offset 5 mainVideoIn 1 block amp block 1024 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 26 mainVideoIn amp block _ Cil tmp9 TBlocks const amp block heap arg read imarw insn id local offset 7 mainDCT 2 block amp block 1024 home mihai projects heap cil ocaml mjpeg par mjpeg par c 28 heap arg read imarw insn id local offset 7 mainDCT 1 1024 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 28 mainDCT cil tmp9 amp block _ Cil_tmp10 TBlocks const x amp block heap arg read imarw insn id local offset 9 mainQ 2 block amp block 1024 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 31 heap arg read imarw_insn id local offset 9 mainQ 1 block amp block 1024 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 31 mainQ cil tmpl0 amp block cil tmpll TBlocks const amp block heap arg read imarw insn id local offset 11 mainVLE 2 stream amp stream 512 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 33 heap_arg_read imarw_insn_id_local_offset 11 mainVLE 1 block amp block 1024 home mihai projects hea
13. int id last instruction unique ID that wrote here UT_hash_handle hh Hash internal data mw_h_t static mw_h_t mw_h NULL Memory map of write targets Symbol table key memory address of the symbol vaue data associated to the symbol as follows x name first declaration name a size symbol size in bytes elsize element size in bytes useful for vectors file source file name x line source file line ii typedef struct st_data_s unsigned int addr Symbol memory address char name First symbolic name associated to the address unsigned int size Memory size of the symbol unsigned int elsize Memory size of an element of the symbol useful for vectors char file Source file full path unsigned int line Source file line number st_data_t static avl_tree_t st NULL Data dependency accumulator for the next instruction the next source code defined memory write or function actual argument read key memory location address of the data dependency value variable name my typedef struct deps_h_es unsigned int addr Memory address of the dependency hash index char name Name of the variable that references the address UT_hash_handle hh Hash internal data deps_h_t static deps_h_t deps_h NULL Dependencies for the next instruction Memory locations of the automatic variables The str
14. par File Edit View Search Terminal Help heapdemouserfdemoheap cd projects mjpeq par tracer VisPlugin zgrv heapdemouserfdemoheap 1 cd projects mjpeg par heapdemouseredemoheap mjpeq par Ls barbaral sx126 U DCT h mjpeq par cbp paramh types h barbaral28x128 V marker h mjpeg par cil c Q h Video in h barbaral2sx128 mjpeg Tunc h mjpeg par layout tables h Video out h csize h mjpeg par c mjpeg par xml tracer VLE h heapdemouser demoheap mjpeg_par In this directory run the tracer sh script with arguments tracer sh mjpeg parc where e double dash ends the command line options that are passed to the compiler and linker e mjpeg_par c is the name of the source file to analyse HEAP D3 2 final doc Page 22 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial c heapdemousera demoheap projects mjpeg par File Edit View Search Terminal Help heapdemouser demoheap cd projects mjpeg_par gt heapdemouser demoheap mjpeg parl ls barbaral28x128 U DCT h mjpeg par cbp param h types h barbaral28x128 V marker h mjpeg par cil c Q h Video in h barbaral28x128 mjpeg _func h mjpeg par layout tables h Video out h csize h mjpeg par c mjpeg par xml tracer VLE h heapdemouser emoheap mjpeg_par tracer sh mjpeg_par c home heapdemouser projects tracer c1l 1 4 0 bin c1lly save temps noWrap no
15. with the instrumented application program under analysis to obtain an executable program To perform the execution analysis this program should be run using the same inputs as the normal not annotated application program Data dependency is collected during pro gram execution and at the end a summary file is generated that contains all the data needed to repre sent graphically the dependencies and the cross references with the source program in the IDE The library is made of e the HEAP API functions These are called by the annotated source code during its execution and capture in real time the data of the events of interest such as data access R W variable creation destruction function calls and actual arguments etc http www perl org HEAP D3 2 final doc Page 8 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial e the tracer data structure see annex 7 for details needed to record and compress in real time the primary data of the events triggered during the instrumented program execution e utility functions for real time and post run data processing such as symbol table operations e g insert remove search call stack management automatic variable management XML generation etc 2 3 IDE The IDE functionality is provided by Code Blocks Code Blocks is a well established cross platform IDE that supports pr
16. Information and Communication Technologies ICT Programme Project N FP7 ICT 247615 HEAP Deliverable D3 2 Data dependency profiling tool User Manual and Tutorial Author s Status Version Date Distribution Confidentiality Code Mihai T Lazarescu PoliTo V1 4 23 January 2012 Public HEAP D3 2 PTO V1 4 20120123 Abstract In this deliverable there is a description of the data dependency and profiling sub toolset Copyright by the HEAP Consortium FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial Disclaimer This document contains material which is the copyright of certain HEAP contractors and may not be reproduced or copied without permission All HEAP consortium partners have agreed to the full pub lication of this document The commercial use of any information contained in this document may require a license from the proprietor of that information The HEAP Consortium consists of the following companies i short name sT T HEAP D3 2 final doc Page 3 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial Document Revision History Date lore Avthoftaon Centiwtor Summary ofmain anges 1 draft No deliverable no yet 2 draft No deliverable no yet 2012 01 23 Mihai T
17. PrintLn dooneRet dosimplity dolmarw c mjpeg _par c gcc D GNUCC E DCIL 1 mjpeg _par c o mjpeq par 1 home heapdemouser projects tracer c1l 1 4 0 ob 86 LINUX cilly asm exe out mjpeg_par cil c noWrap noPrintLn dooneRet dosimplity dolmarw mjpeq_ par i gce D GNUCC E mjpeg_par cil c o mjpeg_par cil 1 gcc D GNUCC c o mjpeg par o mjpeg_ par cil 1 rm f mjpeg par 1 mjpeg _par o mjpeg _par cil 1 gcc mjpeg_par cil c lavl Lxml2 Lheap o tracer rm f mjpeg par cil o tracer W no arg 1 for instruction 19 main W no arg 2 for instruction 28 main test s model xml test model xml mjpeg _par xml mw model xml mjpeg par xml heapdemouser demoheap mjpeg_par where e home heapdemouser projects tracer cil 1 4 0 bin cilly is the starting command for CIL compilation e the three gec compilations that follow are part of the cilly run and generate the instrumented model of the user program mjpeg_par cil c e rm f mjpeg_par i mjpeg_par o mjpeg_par cil i cleans the temporary files from the di rectory e the next gec run compiles the CIL model mjpeg_par cil c and links it with the data depend ency tracer library libheap and other system libraries libxml2 libavl e the rm command cleans the temporary files from the directory e the data dependency tracer is then run It actually runs the user program instrumented for data dependency tracing together with the data
18. Start up Disk HEAPdemo vdi Normal 8 00 GB If the above is correct press the Create button Once you press it a new virtual machine will be created Note that you can alter these and all other setting of the created virtual machine at any time using the Settings dialog accessible through the menu of the main window lt Back create Cancel Once created select the virtual machine from the list and click on settings File Machine Help 2S 9 V New Settings Start Discard We will add a virtual monitor to the virtual machine to have enough display real estate to be able to properly visualize both the IDE and the dependency visualization windows Select Display on the left column Change Monitor Count to 2 and click OK HEAP D3 2 final doc Page 13 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial General Display System Display Video Remote Display Storage 3 video Memory mmj MB P Audio 1 MB 128 MB Network Se el 2 Monitor Count gpm g Serial Ports 1 a 4 USB Extended Features Enable 3D Acceleration Shared Folders C Enable 2D Video Acceleration Select a settings category from the list on the left hand side and move the mouse over a settings item to get more information
19. Turning Off the VM seessssssssssseccoccsssssececcosssecceccecocssssseccososssssceccocosssssssecocsssssseceeoso 26 Ts TEACCP data structire ji cscscsszenssacsasescseiescscesiacescacsasccantessasescesessaesssessessseodesscsessssessesassassesssesceesestetsess 28 8 Excerpts of VirtualBox Documentation on Shared Folders scccccsosssssssssssccccscsccccsssscees 31 Ses I OUT oc sorte since Ai AAA E A A A 32 Sa PALOMINO TLS MOUNT A cians se pares EEEE EEE OEO EE E i 32 9 Excerpts of Code Blocks Documentation on Creation of a New Project e 32 TLE O N CAT a E E E A E E E E E E E EE E 33 92 Changin Tle Compos Ol sassis Aa AA 34 dha Addim A Dnk nn iera A e eE E R ae a are E 34 22 Addo apre exs nn a EE A 36 ie E E T E E E E E E E A E ET 36 10 Source Code Annotation Example ssseeeeseossssscececcossssceeccossossssscecocosssssceccoossssscesececossssssececssssoo 36 10 Developer C Soure OAC eresse rns n TE EESE A E 37 10 2 C Source Code Annotated using HEAP API nennen 37 HEAP D3 2 final doc Page 5 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial Abbreviations HEAP D3 2 final doc Page 6 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial 1 Introductio
20. ant the new project A Co nso le to be created as well as its title Project title HelloWorld Folder to create HelloWorld chp Resulting flename C HelloWorld HelloWorld cbp Finally the wizard will ask if this project should use the default compiler normally GCC and the two default builds Debug and Release All of these settings are fine Press finish and the project will be generated The main window will turn gray but that is not a problem the source file needs only to be opened In the Projects tab of the Management pane on the left expand the folders and double click on the source file main cpp to open it in the editor Management bai q Projects Symbols Files P ee a Workspace 3 59 HelloWorld F Sources _ This file contains some default code 9 2 Changing file composition A single source file is of little uses in programs of any useful complexity In order to handle this Code Blocks has several very simple methods of adding additional files to the project 9 2 1 Adding a blank file To add the new file to the project bring up the file template wizard through either File gt New gt File orMain Toolbar gt New file button gt File HEAP D3 2 final doc Page 35 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial File cpp CodeBlocks svn build File cpp Code Blocks svn build Edit View
21. d Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial The OS was configured without swap area to reduce the virtual disk size so it has to fit in the virtual machine memory allocation The memory allocation can be also lower our tests ran well with 512MB Next select as the start up disk the virtual disk provided and click on Next gt Virtual Hard Disk If you wish you can now add a start up disk to the new machine You can either create a new virtual disk or select one from the list or from another location using the folder icon If you need a more complex virtual disk setup you can skip this step and make the changes to the machine settings once the machine is created The recommended size of the start up disk is 8 00 GB Start up Disk Create new hard disk Use existing hard disk HEAPdemo vdi Normal 8 00 GB lt Back Cancel Review the virtual machine characteristics summary and click Create b The VM disk releases are available here http polimage polito it wsnwiki doku php id research sw par_vm start HEAP D3 2 final doc Page 12 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial Summary You are going to create a new virtual machine with the following parameters Name HEAF demo OS Type Fedora Base Memory 768 MB
22. d in the functional code to capture as close as possible the op eration of the original code during program run Generated by CIL v 1 4 0 print CIL Input is true extern int imarw insn id global offset static int imarw insn id local offset OF Static int imarw_decl_globals_done OF Static void imarw_decl_globals void typedef int TNumOfBlocks typedef int TPixel enum _TBlockType RGB O YUV 1 bof typedef enum _TBlockType TBlockType struct TBlockData TPixel pixel 64 by typedef struct TBlockData TBlockData struct TBlocks IBlockData Y1 TBlockData Y2 HEAP D3 2 final doc Page 38 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial TBlockData Ul TBlockData V1 bi typedef struct TBlocks TBlocks struct TBitStreamPacket int marker int byte 1 bi typedef struct TBitStreamPacket TBitStreamPacket struct TPackets TBitStreamPacket packet 64 bi typedef struct TPackets TPackets struct TFrameSize int Hor int Ver typedef struct TFrameSize TFrameSize struct THeaderInfo TFrameSize FrameSize TNumOfBlocks NumOfBlocks TBlockType BlockType bi typedef struct THeaderInfo THeaderInfo struct TOQTables int QCoef 64 bi struct THuffTablesAC int ACcode 257 int ACsize 257 bi struct THuffTablesDC int Decode 2571 int DCsize 257 EF
23. der myfiles would be mounted to media sf_myfiles on Linux The guest property VirtualBox GuestAdd SharedFolders MountPrefix determines the prefix that is used Change that guest property to a value other than sf to change that prefix see the section called Guest properties for details Note Access to auto mounted shared folders is only granted to the user group vboxsf which is cre ated by the VirtualBox Guest Additions installer Hence guest users have to be member of that group to have read write access or to have read only access in case the folder is not mapped writeable To change the mount directory to something other than media you can set the guest property VirtualBox GuestAdd SharedFolders MountDir To have any changes to auto mounted shared folders applied while a VM is running the guest OS needs to be rebooted This applies only to auto mounted shared folders not the ones which are mounted manually 9 Excerpts of Code Blocks Documentation on Crea tion of a New Project This section is a guide to many of the beginning and some intermediate features of the creation and modification of a Code Blocks project If this is your first experience with Code Blocks here is a good starting point 9 1 The project wizard Launch the Project Wizard through File gt New gt Project to start a new project Here there are many pre configured templates for various types of projects including the option to create custom
24. e The mjpeg par project will open Machine View Devices Help Applications Places System OP amp 21 C sun sep 18 16 49 Hi BBW ri Projects Symbols void BoundDctMatrix int matrix int Bound v Workspace int mptr v a mjpeg_par GO for mptr matrix mptr lt matrix BLOCKSIZE mptr gt Sources if mptr Bound lt 0 mptr Bound else if mptr Bound gt 0 mptr Bound void mainDCT const TBlocks input TBlocks output D1 int DCTBound DCTSHift DCTBound DataPrecision 716383 1024 DCTShift DataPrecision 72048 128 Area A stone Yl pixel DCTShift Shift ReferenceDct int input l pixel output Y1 pixel DCT BoundDctMatrix output 1 pixel DCTBound Bound Limit PreshittOctMatric aat input Y2 pixel DCTShift Shift ReferenceDct int input 2 pixel output Y2 maan DCT BoundDctMat rix output Y2 pixel DCTBound Bound Limit AU ReferenceDct int input Ul pixel output Ul pixel DCT BoundDctMat rix output U1 pixel DCTBound Bound limit k Logs amp others EJ A Code Blocks amp Q Search results Debugger Build iog P Build messages elcome to the script console Script function edit_startup_script script registered under menu amp Settings Edit startup script Opening home heapdemouser projects mjpeg_par mjpeg_par cbp ommand v
25. each target so select all the boxes and click Finish to generate the file C C source Please enter the file s location and name and oS cyc FILE P Penebat and nan Filename with full path C HelloWorld hello cpp Add file to active project In build target s v Release HEAP D3 2 final doc Page 36 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial 9 2 2 Adding a pre existing file Click Project gt Add files to open a file browser Here you may select one or multiple files using combinations of Ctrl and Shift The option Project gt Add files recursively will search through all the subdirectories in the given folder selecting the relevant files for inclusion Click Open to bring up a dialogue requesting to which build targets the file s should belong For this example select both targets Multiple selection E Debug v Release Selected 2 Note 1f the current project has only one build target this dialogue will be skipped 9 2 3 Removing a file Using the above steps add a new C source file useless cpp to the project Removing this un needed file from the project is straightforward Simply right click on useless cpp in the Projects tab of the Management pane and select Remove file from project d Projects Symbols Files b 1 EC Workspace 3 59 HelloWorld Sourc
26. es hello cpp bon main cpp a useless cpp Hu H Save useless cpp Close useless cpp Open with Remove file from project 10 Source Code Annotation Example The example is limited to the main function of the developer C source code used in this document and its annotated form using the HEAP API suitable to be compiled and run to generate the trace data for parallelism analysis HEAP D3 2 final doc Page 37 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial 10 1 Developer C Source Code define NULL 0 define EOF 1 include mjpeg_func h int main int argc char argv int t j i THeaderInfo hi TPackets stream TBlocks block DECL hi 1 0 DECL block 1 0 DECL stream 1 0 for t 0 t lt 1 NumFrames t initVideoIn amp hi for j 0 J lt 2 VNumBlocks j for i 0 i lt 2 HNumBlocks i mainVideoIn amp block mainDCT amp block amp block intArith block amp block mainQ amp block amp block mainVLE amp block amp stream mainVideoOut amp hi amp stream return 0 10 2 C Source Code Annotated using HEAP API The source code is completely rewritten by the CIL based annotator The used parts of the includes for each source file are output in the model The HEAP annotations are intersperse
27. form IDE hup iwww codebhlocks org Release 10 05 rev 0 unknown date gcc 4 5 1 Linux unicode 32 bit Tal Create a new project amp Open an existing project Visit the Code Blocks forums Report a bug Request a new feature Recent projects No recent projects Logs amp others Scripting console FilesExtensionHandler fs Welcome to Code Blocks default 2 POO O E Right ctr Select File from the top menu then click on Open In the file selection window that opens navigate to heapdemouser projects mjpeg par select mjpeg par cbp and click on Open HEAP D3 2 final doc Page 19 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial Open file ey Search E barbaral28x1286 U 8 0 KB 07 05 2011 amp Recently Used barbaral 28x128 V 8 0 KB 07 05 2011 a heapdemouser _ barbaral28x128 16 0 KB 07 05 2011 E File System csize h 1 0 KB 06 14 2011 DCT A 3 9 KB 06 14 2011 markerh 704 bytes 06 14 2011 mjpeg_func h 504 bytes 06 21 2011 mjpeg parc 13 2 KB Thursday mjpeg parcbp 1K 04 20 2011 mjpeg par cilc 121 2 KB Yesterday at 20 14 mjpeg_par layout 246 bytes Yesterday at 20 11 j mjpeg_parxml 169 9 KB Yesterday at 20 15 D param h 1 3 KB 06 14 2011 1 1 KB 06 14 2011 3 6 KB 06 14 2011 73 1 KB Yesterday at 20 14 Add Remov
28. ge 7 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial ty of the tool by selecting and using the stable and reliable existing code instead of starting a new development cycle A CIL extension imarw ml was specifically written to perform all HEAP related code analysis and annotations The extension interfaces with the intermediate representation IR of the source C pro gram in CIL and uses its specific mechanisms to traverse and annotate the IR of the code The HEAP CIL extension reuses to varying degrees the following CIL code analysis and transfor mation engines The CIL extension logwrites ml was used as the base upon which the whole HEAP CIL extension was built The extension was already performing code analysis and annotation that captured most of the data accesses required for the HEAP project The annotations were adapted to HEAP API specifi cations and extended to capture all data accesses needed The CIL extension logcalls ml was then merged into the logwrites ml extension It captured and an notated function calls also required for the HEAP project The annotations were then adapted to HEAP API specifications and extended to capture all function call aspects that are needed Besides these two CIL extensions that were used at source code level other code transformation tools were just enabled and used with no change at all
29. gh the steps that are necessary to create a new virtual machine for VirtualBox Use the Next button to go to the next page of the wizard and the Back button to return to the previous page You can also press Cancel if you want to cancel the execution of this wizard Cancel Input a name of you choosing but select Linux for the operating system and Fedora for the ver sion then click on Next gt HEAP D3 2 final doc Page 10 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial VM Name and OS Type Enter a name for the new virtual machine and select the type of the quest operating system you plan to install onto the virtual machine The name of the virtual machine usually indicates its software and hardware configuration It will be used by all VirtualBox components to identify your virtual machine Name HEAPdema OS Type Operating System Linux Version Fedora lt Back Next Cancel Leave the memory allocation as suggested it can be changed later on as necessary Memory Select the amount of base memory RAM in megabytes to be allocated to the virtual machine The recommended base memory size is 768 MB Base Memory Size 1 768 MB 4 MB 3072 MB lt Back Next gt Cancel HEAP D3 2 final doc Page 11 of 40 FP7 ICT 247615 HEAP Free Software Base
30. gned int addr Address of the data dependency for the argument hash index char vname Name of the data dependency for the argument unsigned int size Size of the data dependency for the argument char file Data dependency location source file full path and name E unsigned int line Data dependency location source file line UT _ hash handle hh Hash internal data args_addd_deps_h_t typedef struct args_addd_h_s unsigned int id Argument unique ID hash index args_addd_deps_h_t deps_h Argument description UT_hash_handle hh Hash internal data args_addd_h_t typedef struct args_h_s unsigned int inid Instruction ID of the function call hash index args addd h t addd h Argument data dependency description by argument number E args_t static args_t args addd_h NULL J Call stack of function names The last called function is on the first position E typedef struct funcs 1 s char func Function name struct funcs 1 s next funcs 1 t static funcs 1 t funcs 1 NULL The start address of a heap memory allocation is waiting for its variable name Static void alloc_pending NULL Instruction to function and source file association key source file value function list as lag key function name startline startcol endline endcol x value instruction list as x key in
31. il ocaml mjpeg_par mjpeg_par c 41 heap_arg_read imarw_insn_id_local_offset 18 main 0 __retres14 amp __retres14 4 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 5 heap_endFunction main home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 5 imarw_cleanup__ return __retresl4 HEAP D3 2 final doc Page 40 of 40
32. iscard 14 http www virtualbox org manual chO1 html idp7717712 HEAP D3 2 final doc Page 28 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial Annexes 7 Tracer data structure Global instruction ID offset int imarw_insn_id_global_offset 0 Record the memory write instructions that are executed key instruction unique ID value instruction stats as location instruction location file line Ia ticks how many times the instruction was executed B typedef struct wi_h_s unsigned int id Instruction unique ID hash index char file Full path source file name char func Function name unsigned int line Source file line number unsigned int ticks How many times the instruction was executed UT hash handle hh Hash internal data wi_h t static wi_h_t wi_h NULL List of write instructions Data transfer between memory write and read instructions key write source instruction unique ID as used for wi keys value read sink instructions as x key read sink instruction unique ID as used for wi keys value data transfer as z key memory address of the transferred R W data i value data access description as key symbolic name value how many times it was accessed ay typedef struct dt_read_mem_name_h_s char name
33. jpeg_par mjpeg_par c UTF 8 Line 431 Column 37 Insert Read Write default O 2 P AO O H hRight ctr The nodes still visible are the function arguments HEAP D3 2 final doc Page 26 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial 5 New Project Creating a new project for data dependency analysis requires the following steps 1 create a new project under the IDE and populate it with the project source files please refer to the Code Blocks documentation for detailed explanation and to annex 9 Unless you are going to use Code Blocks for development importing a project for data de pendency analysis is usually just a matter of copying the project file tree under the project di rectory using standard GUI or command line tools 2 make sure the project compiles well with the native compiler gcc runs and produce the proper results 3 apply the data dependency analysis as described in section 4 2 4 visualize the data dependency results as described in section 4 3 An important aspect to consider when creating a new IDE project is its location If the project direc tory is set on the VM virtual disk it can be lost with the next updates of the VM It is safer to create the project on the host file system that is accessible to the host OS using the shared folders configura tion in section 3 1 6 Logout and Turning
34. m driver in the Guest Addition to talk to the host For Windows guests shared fold ers are implemented as a pseudo network redirector for Linux and Solaris guests the Guest Addi tions provide a virtual file system To share a host folder with a virtual machine in VirtualBox you must specify the path of that folder and choose for it a share name that the guest can use to access it Hence first create the shared folder on the host then within the guest connect to it There are several ways in which shared folders can be set up for a particular virtual machine e In the window of a running VM you can select Shared folders from the Devices menu or click on the folder icon on the status bar in the bottom right corner e Ifa VM is not currently running you can configure shared folders in each virtual machine s Settings dialogue e From the command line you can create shared folders using VBoxManage as follows VBoxManage sharedfolder add VM name name sharename hostpath era See the section called VBoxManage sharedfolder add remove for details There are two types of shares 1 VM shares which are only available to the VM for which they have been defined 2 transient VM shares which can be added and removed at runtime and do not persist after a VM has stopped for these add the t ransient option to the above command line Shared folders have read write access to the files at the host path by defa
35. n The open source flow for the analysis of the execution parallelism provides e an IDE for the development of C language based software projects shared with the depend ency visualization flow e a program to analyse the developer C source code and to generate a functional model in strumented with code for data collection during program execution e a library to analyse the data gathered during program execution at run time and to generate a compact representation of the data dependencies between program instructions The companion tools for the visualization of data dependencies are covered by D3 4 namely e an IDE for the development of C language based software projects e a graphical visualization program that displays and allows the exploration of data dependen cies with automated cross references to the source code in the IDE A free software virtual machine was configured with the whole chain as a means to achieve a consis tent distribution able to demonstrate the tool functionality and receive valuable feedback for its fur ther development 2 Tool Chain The tool chain and the virtual machine make use only of free software tools The changes to the tools as well as the virtual machine configuration provided are considered a beta release Please provide feedback to improve it 2 1 Source Code Analysis and Instrumentation The source code analysis and instrumentation tool is based on the CIL platform C Intermediate
36. ndy shortcuts e OC with the cursor on a node display the source code of the node with 5 context lines HEAP D3 2 final doc Page 24 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial ae ua poar e C with the cursor on a node display the source code of the node with 10 context lines e e with the cursor on a node move the IDE editor cursor on the source line corresponding to the node e m with the cursor on an arch display the unabridged list of data dependencies repre sented by the arch HEAP D3 2 final doc Page 25 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial e use the mouse wheel to zoom in out To further facilitate the exploration of the data dependencies the graph nodes can be folded by fold ing in the IDE the lines corresponding to the nodes source lines For instance by folding all blocks in the IDE we obtain the dependency view between the functions e fold all the blocks in the IDE Machine View Devices Help F2 Applications P CREEN o phe IAA EY CABO DOCA EEA PVDA OLDAN A 14 eadra eadra ordered r phe a ple rv caus ery preg ocr ore oe a cia iy ffs gt Jhome heapdemouser projects m
37. ojects in C C D languages It runs on Linux OS X and Windows platforms providing by design a consistent look feel and operation mode It is written in C using the wxWidgets library and is designed to be very extensible and fully configurable A dedicated Code Blocks plug in was written for the HEAP project to extend the IDE functionality to support the integration with the dependency visualization program 2 4 Data Dependency Visualization This tool chain component is based on the free software program ZGRViewer It is a graph visual iser implemented in Java and based upon the Zoomable Visual Transformation Machine ZGRviewer is specifically aimed at displaying graphs expressed using the DOT language from AT amp T GraphViz and processed by programs dot neato or others such as twopi It is designed to handle large graphs and offers a zoomable user interface ZUI which enables smooth zooming and easy navigation in the visualized structure In the latest version it can provide e overview detail views e focus context magnification with Sigma Lenses views e graphical fish eye focus context distortion views e navigation along graph edges with Link Sliding e navigation from node to node with Bring amp Go The tool chain includes the latest stable release version 0 8 2 thus the features may differ from the latest development version 3 Demo Virtual Machine A Linux VirtualBox virtual machine VM was configured to
38. p cil ocaml mjpeg_par mjpeg_par c 33 block amp block mainVLE cil tmpll amp stream _ Cil_tmp12 THeaderInfo const x amp hi _ Cil tmpl3 TPackets const amp stream heap_arg_read imarw_insn_id_local_offset 14 mainVideoOut 2 stream amp stream 512 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 35 heap_arg_read imarw_insn_id_local_offset 14 mainVideoOut 1 hi amp hi 16 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 35 mainVideoOut cil tmpl2 _ cil tmpl3 heap read imarw insn id local offset 15 i amp i 4 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 24 i heap_write imarw_insn_id_local_offset 15 i amp i 4 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 24 heap_read imarw_insn_id_local_offset 16 j amp j 4 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 22 j heap_write imarw_insn_id_local_offset 16 jJj amp j 4 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 22 heap_read imarw_insn_id_local_offset 17 t amp t 4 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 18 E ary heap_write imarw_insn_id_local_offset 17 t amp t 4 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 18 __retresl4 0 heap_write imarw_insn_id_local_offset 18 __retres14 amp __retres14 4 home mihai projects heap c
39. projects heap cil ocaml mjpeg_par mjpeg_par c 7 heap_decl imarw insn id local offset 24 hi amp hi 16 1 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 9 a home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 10 heap decl imarw insn id local offset 26 block amp block c a a ts heap cil ocaml mjpeg_par mjpeg_par c 11 home mihai proje home mihai projects heap cil ocaml mjpeg_par 1 heap_decl imarw_insn_id_local_offset 27 __retresl14 amp __ heap_arg_write imarw_insn_id_local_offset 20 main 2 argv amp argv 4 0 heap decl imarw insn id local offset 25 stream amp stream 512 1 O0 1024 1 QO retresl4 4 1 0 HEAP D3 2 final doc Page 39 of 40 j l j ii j FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the MITI ii kan AN Parallelism in the Program Execution User Manual and Tutorial a if imarw_decl_globals_done imarw_decl_globals t 0 heap_write imarw_insn_id_local_offset 1 t amp t 4 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 18 while t lt 1 heap_arg_read imarw_insn_id_local_offset 2 initVideoIn 1 hi amp hi 16 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 20 initVideoIn amp hi T p heap_write imarw_insn_id_local_offset 3 j amp j 4 home mihai projects
40. reliably support the functionality of the tool chain Both the linux distribution Fedora and VirtualBox are free software The VM OS is a ruthlessly stripped down Fedora 14 distribution able to support a graphical inter face and the HEAP tool chain http www codeblocks org http www wxwidgets org http zvtm sourceforge net zgrviewer news html http zvtm sourceforge net https secure wikimedia org wikipedia en wiki Linux http www virtualbox org https fedoraproject org wiki Fedora_14_announcement O N A Nn A HEAP D3 2 final doc Page 9 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial The users defined on the virtual machine are e root with the password Demo11HEAP This login can be used to perform administration tasks on the VM if required e heapdemouser with the password Demoll1HEAP This login is used for all tool chain related activities 3 1 Virtual Machine Set up The virtual disk was created for the version 4 1 6 of VirtualBox and can be used on any host OS sup ported by VirtualBox Linux Macintosh Solaris Windows The virtual machine set up follows the typical wizard steps with the default settings after clicking on New button File Machine Help New Settings Start Discard then on Next gt Welcome to the New Virtual Machine Wizard This wizard will guide you throu
41. sequence HEAP D3 2 final doc Page 17 of 40 FP7 ICT 247615 HEAP p Free Software Based Flow for the Visualization of the HEAP Parallelism in the Program Execution User Manual and Tutorial Machine View Devices Help Fedora 14 Deli 3 F Right ctrl The VM will reboot and the user heapdemouser will be automatically logged in to a minimal GNOME workspace 4 Demo Project The buttons to launch the applications of interest are exposed for convenience on the top panel of the workspace right next to Fedora menus EJ Applications Places System n ar z From left to right they are opens a terminal window g opens Code Blocks IDE a discards a hanged instance of the Code Blocks IDE displays the user manual of the distribution 4 1 Load the Demo Project Click on the Code Blocks button lai to start the IDE HEAP D3 2 final doc Page 18 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial Machine View Devices Help Applications Places System lg Start here Code Blo I 21 C sun sep 18 16 42 Start here Code Blocks 10 05 File Edit View Search Project Build Debug Tools Plugins Settings Help HEAP EREA 9 Qa gt Build target J UBF 8 Ol Z Management Start here Projects Symbols OLE Code Blocks The open source cross plat
42. struction ID lag value pointer to instruction stats in Swi rd typedef struct files _funcs_insns_h_s unsigned int inid Unique instruction ID hash index wi_h_t wi Instruction stats UT_hash handle hh Hash internal data files funcs insns h tt HEAP D3 2 final doc Page 31 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial typedef struct files_funcs_h_s char fname Unique function name within source file hash index files funcs insns h t insns h Function list of instructions UT hash handle hh Hash internal data files funcs_h t typedef struct files h s char fname Unique full path source file name hash index files funcs h t funcs h Source file function list UT hash handle hh Hash internal data files h t 8 Excerpts of VirtualBox Documentation on Shared Folders With the shared folders feature of VirtualBox you can access files of your host system from within the guest system This is similar how you would use network shares in Windows networks except that shared folders do not need require networking only the Guest Additions Shared Folders are supported with Windows 2000 or newer Linux and Solaris guests Shared folders must physically reside on the host and are then shared with the guest which uses a special file syste
43. ucture of each data dependency description key memory location base address value Size of the variable mi typedef struct autos_h_es unsigned int addr Memory address of the variable hash index unsigned int size Variable size UT_hash_handle hh Hash internal data autos_h_t typedef struct autos 1 s autos_h_t autos_h Automatic variable collection for this level struct autos 1 s next autos 1 t static autos 1 t autos 1 NULL Levels functions of automatic variable declarations Actual arguments for the next function call The structure of each data dependency description HEAP D3 2 final doc Page 30 of 40 j j j ij FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the EEUE T j j j f j F Parallelism in the Program Execution User Manual and Tutorial Sa key instruction ID of the function call value argument data dependency description indexed by argument number starting at 1 jag The structure of each data dependency description key name of the data dependency of the argument value description of the data dependency of the argument x addr address of the data dependency for the argument size size of the data dependency for the argument x file data dependency location source file name x line data dependency location source file line number ay typedef struct args_addd_deps_h_s unsi
44. ult To restrict the guest to have read only access create a read only shared folder This can either be achieved using the GUI or by appending the parameter readonly when creating the shared folder with VBoxManage Starting with version 4 0 VirtualBox shared folders also support symbolic links symlinks under the following conditions 1 The host operating system must support symlinks i e a Mac Linux or Solaris host is re quired 2 Currently only Linux Guest Additions support symlinks HEAP D3 2 final doc Page 32 of 40 FP7 ICT 247615 HEAP Free Software Based Flow for the Visualization of the Parallelism in the Program Execution User Manual and Tutorial 8 1 Manual mounting You can mount the shared folder from inside a VM the same way as you would mount an ordinary network share In a Linux guest use the following command mount t vboxsf o OPTIONS sharename mountpoint To mount a shared folder during boot add the following entry to etc fstab sharename MOUNT pOLNG vboxsft defaults 0 O 8 2 Automatic mounting Starting with version 4 0 VirtualBox can mount shared folders automatically at your option If automatic mounting is enabled for a specific shared folder the Guest Additions will automatically mount that folder as soon as a user logs into the guest OS With Linux guests auto mounted shared folders are mounted into the media directory along with the prefix sf_ For example the shared fol
45. void initVideoIn THeaderInfo HeaderInfo void mainVideoIn TBlocks blocks void mainDCT TBlocks const input TBlocks output void intArith TBlocks const input TBlocks output 5 void mainQ TBlocks const input TBlocks output 3 void mainVLE TBlocks const blocks TPackets stream void mainVideoOut THeaderInfo const xHeaderInfo TPackets const int main int argc char arcy int t int J int i THeaderInfo hi TPackets stream TBlocks block TBlocks const cil tmp9 TBlocks const cil tmpl0 mm TBlocks const Cl tmpll 4 THeaderInfo const cil tmpl2 TPackets const cil tmpl3 int __retresl4 imarw_init__ j j j ij FEFEFE E E ETEF stream heap_startFunction main home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 5 heap_arg_write imarw_insn_id_local_offset 19 main 1 argc amp argc 4 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 7 dn home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 7 heap decl imarw insn id local offset 21 t amp t 4 0 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 7 heap_decl imarw insn id local offset 22 Jj amp jJ 4 0 home mihai projects heap cil ocaml mjpeg_par mjpeg_par c 7 a a c heap_decl imarw insn id local offset 23 i amp i 4 1 O0 home mihai

Download Pdf Manuals

image

Related Search

Related Contents

Phonix NL730BCB mobile phone case  MODUCONTROL  取扱説明書  Samsung CS-21M40ML دليل المستخدم  ーnstructi。n 〝 `~ FQ2P JUXT^  Honeywell DMULTISTAGE T8524C User's Manual  istruzioni d'uso instruction manual mode d'emploi  Guide de l`utilisateur  INSTALLAZIONE USO E MANUTENZIONE  DeLOCK 54350 solid state drive  

Copyright © All rights reserved.
DMCA: DMCA_mwitty#outlook.com.