C++ multi-threaded data management -
i looking conceptual advice regarding managing large quantity of data in computer vision project of mine. having trouble a) conceptualizing , b) implementing concept of coordinating large stream of data coming both input program cameras , generated code.
so data have handle on separable 5 separate 'streams' i'll call them:
raw frames (direct input camera) target images (sub-frames, taken previous image stream) timestamps (for raw frames) vehicle attitude data (gps, body angles, etc. wireless serial port connection vehicle) attitude data timestamps
the general flow, if sequentially, be:
frame = grabinputframe(); targetsvector = searchfortargets(frame); vehicledata = getdatafromvehicle(); each target in targetvector ( targetdata = processdata(target, vehicledata); updatetargetlog(targetdata); }
so here's deal: i'm trying means of threads, since algorithms processor intensive , not sequentially related (i mean don't need color data gps coords of target). but, need coordinate images targets , timestamps images, can use right vehicle data right image, etc.
a friend of mine suggested relational db approach, i'm using c++. wonder is, there way mimic relational dbs in c++ (having keys associate data, timestamp or target id associate data or target image)? connecting sql db make easier manage? there significant performance penalty associated doing so? important point here whatever do, have able lock shared data can multi-thread safely.
i hope experience in hierarchical data structures can shed light on situation. thank in advance ideas , criticisms.
openmp may helpful such problem, there inbuilt functions provided locks , atomic operations. since have 5 parallel operations, can create 5 threads , based on threadid, perform different operations.
Comments
Post a Comment