The de.NBI Cloud is a cloud federation, providing compute and storage resources free of charge for academics. These resources are expensive and in high demand which is why they should idle the least amount of time possible. Therefore we employ 'Cloud Credits' (CCs) to assist in your individual responsibility of monitoring your resource usage.
CCs represent the equivalent of computing power per time and have no monetary equivalent, they can not be bought, sold or traded. The number of available CCs depend on the duration and the choice of resources for a project and are automatically allocated to each project. If you feel you do not have enough CCs, you may always request more CCs.
Below you will find an overview on the theoretical and practical aspect of CCs calculation and billing and where you may see your used and allocated CCs and how to request more CCs.
!!! info "Subject to change"
The usage of Cloud Credits is still in its beginning and therefore subject to change.
If you got questions which are not covered on this page or encounter an error, please contact us at cloud-helpdesk@denbi.de.
At your project overview you will see an overview of your 'used Cloud Credits' and 'granted Cloud Credits'. Your used CCs
will be updated in a certain interval.
At the right side of it you may request more cloud credits.
At the bottom of your project overview you will see a history of your billed credits. If you want to know more about the calculation of Cloud Credits, please see below.
Click on Request more credits
. A modal will open in which you are asked for information on why you need more Cloud Credits,
how many Cloud Credits you need and an example on how long these CCs will last for two example flavors.
You will also be granted more Cloud Credits when you request a lifetime extension (for information how these are calculated
please see here)
or when you request a modification request (for information how these are calculated
please see here)
We offer a CCs calculator on this page where you may calculate how many CCs you need for a flavor configuration over a specified amount of time and how long you may run a flavor configuration with a specified amount of CCs.
$({t_i}j){j\in\mathbb{N}}\in\mathbb{R}:=$ runtime in hours for an instance
$w:=\biggl{\begin{array}{@{}r@{;}l@{}}\mathbb{N}&\to\mathbb{Q},\m_{ir}&\mapsto w(m_{ir})\end{array}$ , a weight function
$({M_{rP}}j){j\in\mathbb{N}}\in\mathbb{N}:=$ measurement of used resource
$({c_P}j){j\in\mathbb{N}}\in\mathbb{R}:=$ the used Cloud Credits for a project
The amount of granted Cloud Credits is calculated with $C_P=\lceil t_P\cdot H\cdot\displaystyle\sum_{f\in\mathcal{F}P}c_f\rceil$.
$c_f$ is calculated with $c_f=\displaystyle\sum{r\in\mathcal{R}}m_{fr}\cdot w(m_{fr})\cdot p_r$.
First we need to calculate
Let
Let $\mathcal{F}P=$ {de.NBI tiny, de.NBI tiny, de.NBI large}, $m{\text{de.NBI tiny, vcpu}}=1$,
Let
Let
Then we get
Thus running a de.NBI tiny for an hour costs
To get the granted Cloud Credits for P, we can now calculate:
Thus our project P will have
####Calculating used CCs: We calculate a measurement ${M_{rP}}j=\displaystyle\sum{i\in\mathcal{I}P}{t_i}j\cdot m{ir}\cdot w(m{ir})$. After some time we take another measurement ${M_{rP}}{j+1}$ and calculate the used Cloud Credits between the measurements ${M{rP}}j$ and ${M{rP}}{j+1}$ with ${c{r,\Delta}}{j+1}=({M{rP}}{j+1}-{M{rP}}j)\cdot p_r$. We take ${c_P}j$ (the 'used Cloud Credits' value until ${M{rP}}j$) and calculate the new 'used Cloud Credits' value with ${c_P}{j+1}={c_P}j+\displaystyle\sum{r\in\mathcal{R}}{c{r,\Delta}}_{j+1}$.
Let $\mathcal{I}P=${wone, wtwo, wthree}. wone and wtwo are de.NBI tiny machines and wthree is a de.NBI large machine. To
simplify the example we take a measurement once at the beginning of the day, so let
${t\text{wone}}0=0$, ${t\text{wtwo}}0=0$, ${t\text{wthree}}0=0$,
${t\text{wone}}1=8$, ${t\text{wtwo}}1=4$, ${t\text{wthree}}1=6.8$,
Let $m{ir}$ and
Let
We calculate
$$ \begin{alignat*}{3} {M_{\text{vcpu},P}}0&= && &&\displaystyle\sum{i\in\mathcal{I}P}{t_i}0\cdot m{i,\text{vcpu}}\cdot w(m{i,\text{vcpu}})\ &= && &&({t_\text{wone}}0\cdot m{\text{wone},\text{vcpu}}\cdot w(m_{\text{wone},\text{vcpu}}))\ & && + &&({t_\text{wtwo}}0\cdot m{\text{wtwo},\text{vcpu}}\cdot w(m_{\text{wtwo},\text{vcpu}}))\ & && + &&({t_\text{wthree}}0\cdot m{\text{wthree},\text{vcpu}}\cdot w(m_{\text{wthree},\text{vcpu}}))\ &= && &&(0\cdot 1\cdot 1)\ & && + &&(0\cdot 1\cdot 1)\ & && + &&(0\cdot 28\cdot 2)\ &= && &&0 \end{alignat*} $$
$$ \begin{alignat*}{3} {M_{\text{ram},P}}0&= && &&\displaystyle\sum{i\in\mathcal{I}P}{t_i}0\cdot m{i,\text{ram}}\cdot w(m{i,\text{ram}})\ &= && &&({t_\text{wone}}0\cdot m{\text{wone},\text{ram}}\cdot w(m_{\text{wone},\text{ram}}))\ & && + &&({t_\text{wtwo}}0\cdot m{\text{wtwo},\text{ram}}\cdot w(m_{\text{wtwo},\text{ram}}))\ & && + &&({t_\text{wthree}}0\cdot m{\text{wthree},\text{ram}}\cdot w(m_{\text{wthree},\text{ram}}))\ &= && &&(0\cdot 2\cdot 1)\ & && + &&(0\cdot 2\cdot 1)\ & && + &&(0\cdot 64\cdot 2.5)\ &= && &&0 \end{alignat*} $$
$$ \begin{alignat*}{3} {M_{\text{vcpu},P}}1&= && &&\displaystyle\sum{i\in\mathcal{I}P}{t_i}1\cdot m{i,\text{vcpu}}\cdot w(m{i,\text{vcpu}})\ &= && &&({t_\text{wone}}1\cdot m{\text{wone},\text{vcpu}}\cdot w(m_{\text{wone},\text{vcpu}}))\ & && + &&({t_\text{wtwo}}1\cdot m{\text{wtwo},\text{vcpu}}\cdot w(m_{\text{wtwo},\text{vcpu}}))\ & && + &&({t_\text{wthree}}1\cdot m{\text{wthree},\text{vcpu}}\cdot w(m_{\text{wthree},\text{vcpu}}))\ &= && &&(8\cdot 1\cdot 1)\ & && + &&(4\cdot 1\cdot 1)\ & && + &&(6.8\cdot 28\cdot 2)\ &= && &&392.8 \end{alignat*} $$
$$ \begin{alignat*}{3} {M_{\text{ram},P}}1&= && &&\displaystyle\sum{i\in\mathcal{I}P}{t_i}1\cdot m{i,\text{ram}}\cdot w(m{i,\text{ram}})\ &= && &&({t_\text{wone}}1\cdot m{\text{wone},\text{ram}}\cdot w(m_{\text{wone},\text{ram}}))\ & && + &&({t_\text{wtwo}}1\cdot m{\text{wtwo},\text{ram}}\cdot w(m_{\text{wtwo},\text{ram}}))\ & && + &&({t_\text{wthree}}1\cdot m{\text{wthree},\text{ram}}\cdot w(m_{\text{wthree},\text{ram}}))\ &= && &&(8\cdot 2\cdot 1)\ & && + &&(4\cdot 2\cdot 1)\ & && + &&(6.8\cdot 64\cdot 2.5)\ &= && &&1112.0 \end{alignat*} $$
Now we are able to get the 'used Cloud Credits' value with
$$ \begin{alignat*}{1} {c_P}0&=0\ {c{\text{vcpu},\Delta}}1&=({M{\text{vcpu},P}}1 - {M{\text{vcpu},P}}0)\cdot p{\text{vcpu}}\ &=(392.8 - 0)\cdot 1\ &=392.8\ {c_{\text{ram},\Delta}}1&=({M{\text{ram},P}}1 - {M{\text{ram},P}}0)\cdot p{\text{ram}}\ &=(1112.0 - 0)\cdot 0.3\ &=333.6\ {c_P}1&={c_P}0+\displaystyle\sum{r\in\mathcal{R}}{c{r,\Delta}}_1\ &=0+392.8+333.6\ &=726.4 \end{alignat*} $$
After one day running one de.NBI tiny for 8 hours, one de.NBI tiny for 4 hours and one de.NBI large for 6.8 hours, the project
Let ${t_P}\text{extension}$ the extended amount of lifetime in days.
The amount of extra granted Cloud Credits is calculated with ${C_P}\text{new}=\lceil ({t_P}\text{extension}\cdot H\cdot
\displaystyle\sum{f\in\mathcal{F}_P}c_f)+C_P\rceil$.
Our project
We calculate the new granted Cloud Credits
$$ \begin{alignat*}{1} {C_P}\text{new}&=\lceil (H\cdot {t_P}\text{extension}\cdot \displaystyle\sum_{f\in\mathcal{F}_P}c_f)+C_P\rceil\ &=\lceil (8\cdot 62\cdot (1.6+1.6+104))+78042\rceil\ &=\lceil 53171.2+78042\rceil\ &=131214 \end{alignat*} $$
Our project
Let ${t_P}\text{remaining}$ here the remaining amount of lifetime in days, ${\mathcal{F}P}\text{new}$ the new set
of requested flavors and ${\mathcal{F}P}\text{old}$ the old set of requested flavors.
First we take the difference between the two flavor sets ${\mathcal{F}P}\text{diff}={\mathcal{F}P}\text{new}-
{\mathcal{F}P}\text{old}$.
The amount of granted Cloud Credits is calculated with ${C_P}\text{new}=\lceil ({t_P}\text{remaining}\cdot H\cdot
\displaystyle\sum{f\in{\mathcal{F}P}\text{diff}}c_f)\rceil$.
Our project
We calculate the new granted Cloud Credits
$$ \begin{alignat*}{1} {C_P}\text{new}&=\lceil (H\cdot {t_P}\text{remaining}\cdot \displaystyle\sum_{f\in{\mathcal{F}P}\text{diff}}c_f)+C_P\rceil\ &=\lceil (8\cdot 61\cdot ((-1.6)+104))+78042\rceil\ &=\lceil 49971.2+78042\rceil\ &=128014 \end{alignat*} $$
Our project
Additionally to the variables above, we include the starting date of a running machine and a start date since when we calculate
the uptime and therefore the 'used Cloud Credits'.
You may find our weight function here
and our used start/since date here.
Our weight function works as follows:
Let
We iterate through the descending sorted timestamps
Next we iterate through the ascending sorted weights
The runtime $({t_i}j){j\in\mathbb{N}}$ will be calculated by counting the uptime between the since/start date and the timestamp