Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

MATLAB number of operations

Status
Not open for further replies.

grit_fire

Member level 5
Joined
Mar 13, 2011
Messages
82
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Location
USA
Activity points
1,966
Hi, all

Not sure if I am posting at the right place. Anyway here my question is:

I am trying to count the number of operations in a MATLAB program. Say it has 5 additions and 5 multiplications. Of course the time/hardware resource consumed by multiplication won't be the same with addition. Does anyone know how o convert number of multiplication to equivalent number of addition?

Thanks a lot!
 

grit_fire

Member level 5
Joined
Mar 13, 2011
Messages
82
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Location
USA
Activity points
1,966
Maybe you must evaliate it, not deterministically, but empirically .
Take a look on that function, wich coud help in this task :

Elapsed CPU time - MATLAB

+++

Thanks a lot!

Will that imply the connection with energy consumption? i.e. 1.5 times faster = 1.5 times less energy consumed for this operation?
 

andre_teprom

Super Moderator
Staff member
Joined
Nov 7, 2006
Messages
9,237
Helped
1,151
Reputation
2,321
Reaction score
1,127
Trophy points
1,403
Location
Brazil
Activity points
53,771
The reason of that research is not clear to me.
Do you mean to energy, "CPU processing" in microinstructions time ?

If so, the answer could be yes ( with some restrictions ), due MPLAB is not a full-compiled language, but a language wich interprets comands.
But, performing a test with a big amount of operations, I believe that result is very close to time consummed by each operation.

+++
 

bigdogguru

Administrator
Joined
Mar 12, 2010
Messages
9,831
Helped
2,348
Reputation
4,690
Reaction score
2,274
Trophy points
1,413
Location
Southwest, USA
Activity points
62,510
I am trying to count the number of operations in a MATLAB program. Say it has 5 additions and 5 multiplications. Of course the time/hardware resource consumed by multiplication won't be the same with addition. Does anyone know how o convert number of multiplication to equivalent number of addition?

Unlike a RISC processor, the CISC processor in your desktop running MATLAB lacks a direct correlation between a multiply and an equivalent number of addition operations. The time or the number of cycles for your desktop system's processor to care out a multiply operation depends largely on the type of multiplication.

Are the operands integer or floating point for instance?

Also, as Andre pointed out, you have the additional complexity of MATLAB not being a full-compiled language.
You may have to do as Andre suggested and time your actual MATLAB routines and base your calculations on these findings.

Ciao
 

grit_fire

Member level 5
Joined
Mar 13, 2011
Messages
82
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Location
USA
Activity points
1,966
Thank you very much!

The purpose is to basically evaluate the power efficiency of two algorithms by counting the total number of operations. I hence need to relate multiplication/division and addition/subtraction and then obtain one number to represent the number of operations for each algorithm, not to obtain numbers of multiplications and numbers of additions separately.

The reason of that research is not clear to me.
Do you mean to energy, "CPU processing" in microinstructions time ?

If so, the answer could be yes ( with some restrictions ), due MPLAB is not a full-compiled language, but a language wich interprets comands.
But, performing a test with a big amount of operations, I believe that result is very close to time consummed by each operation.

+++


---------- Post added at 16:15 ---------- Previous post was at 16:13 ----------

Unlike a RISC processor, the CISC processor in your desktop running MATLAB lacks a direct correlation between a multiply and an equivalent number of addition operations. The time or the number of cycles for your desktop system's processor to care out a multiply operation depends largely on the type of multiplication.

Are the operands integer or floating point for instance?

Also, as Andre pointed out, you have the additional complexity of MATLAB not being a full-compiled language.
You may have to do as Andre suggested and time your actual MATLAB routines and base your calculations on these findings.

Ciao

Thanks very much. I am aware of the complication involved. I was wondering if there is a conventional way to connect multiplication/division to addition. It seems that the only estimation is to compare the time elapsed on multiplication and addition.
 

bigdogguru

Administrator
Joined
Mar 12, 2010
Messages
9,831
Helped
2,348
Reputation
4,690
Reaction score
2,274
Trophy points
1,413
Location
Southwest, USA
Activity points
62,510

grit_fire

Member level 5
Joined
Mar 13, 2011
Messages
82
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Location
USA
Activity points
1,966
I found another link discussing the use of the MATLAB Profiler:

MATLAB: Profiling for Improving Performance

MATLAB: Analyzing Your Program's Performance

The use of the Profiler should be able to give you clear indications of the usage of CPU resources required by various routines in your program.

I'm hope the info helps you in your endeavors.

Appreciate your help!

The Profiler seems to give me the percentages of CPU usage of different statements within the same program. I don't think that can be used to compare two programs.
 

andre_teprom

Super Moderator
Staff member
Joined
Nov 7, 2006
Messages
9,237
Helped
1,151
Reputation
2,321
Reaction score
1,127
Trophy points
1,403
Location
Brazil
Activity points
53,771
In order to evaluate performance of each command, you should take this account at same program.
Take in mind that, once MATLAB runs at a multithread operational system, this segregation will affect analysis and probably will give not faithful result.

+++
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top