עיבוד מקבילי

  • פותח הנושא BMWE
  • פורסם בתאריך

BMWE

New member
עיבוד מקבילי

שלום! האם יש פה אנשים שיודעים עיבוד מקבילי? אם כן, אני צריך הסבר לגבי פקודה של MPI_Gather - איך היא בדיוק אוספת? היא שמה ב"רשימה" לפי סדר ה proccess? תודה
 

BMWE

New member
ועוד שאלה

יש לי פוינטר לסדרה של איברים רציפים מסוג double. איך אני מתקדם לאיבר הבא? (אחרי שנתיים שלא נגעתי ב C אני כבר לא זוכר)
 

i c e b e r g

New member
--->

אוקי, נתחיל דווקא מפעולת ה- scatter, פעולה זו לוקחת מערך של איברים ומחלקת אותו בין ה- processes במערכת. כלומר הערך ה- i במערך יועבר ל- process ה- i. פעולת ה- gather היא פעולת האיסוף לאחר פעולת ה- scatter. מכל process היא לוקחת נתונים ושמה במקום המתאים במערך.
 

i c e b e r g

New member
והתשובה היתה כן

"כלומר הערך ה- i במערך יועבר ל- process ה- i." וב- gather זה בדיוק להיפך : הערך מה- process ה- i יועבר לתא ה- i במערך
 

BMWE

New member
עוד שאלה של יעילות Matlab

function r=modulator (real,imag,time,ShapeAmplitude,SymbolRate,CarrierFreq,theta) % real == the real part of the symbol to be transmitted % imag == same % time == the Time Vector % ShapeAmplitude == used to set the amplitude of g(t) -- the transmit filter % SymbolRate == the rate of transmition of symblos [ sym/sec ] % CarrierFreq == the fc in Sin(2pi*fc*t+theta) , Cos(2*pi*fc*t+theta) % theta == look up Sdi=zeros(1,length(time)); Sdq=zeros(1,length(time)); %% check lectuer for i=1:length(real) %% same as length(imag) Sdi=Sdi+real(i).*ShapeFilter(time,i-1,ShapeAmplitude,1/SymbolRate); Sdq=Sdq+imag(i).*ShapeFilter(time,i-1,ShapeAmplitude,1/SymbolRate); i end r=Sdi.*cos(2*pi*CarrierFreq*time+theta) - Sdq.*sin(2*pi*CarrierFreq*time+theta);​
השאלה היא: במקום הלולאה שמתבצעת 10000 פעמים (כך זה יוצא), האם ניתן לכתוב משהו מהיר יותר כמו כפל וקטורים. בקובץ מצורפת הפונקציה של ShapeFilter
 
למעלה