Sunday 12 February 2023

CPU & GPU Internel components with explanation

Terminology : 

VBIOSVideo basic input/output system is the BIOS of a graphics card in a computer. 
                    It initializes the graphics card at the computer's boot time.


Dynamic Kernel Module Support (DKMS) is a program/framework that enables generating Linux kernel modules whose sources generally reside outside the kernel source tree.  

CMD:  sudo dkms status   This  command will give GPU kernel & OS-kernel (C.P.U)
Ex: 
CMD:  uname -r    This  command will give OS-kernel only
Ex: 

CMD: /usr/lib/modules/6.x.x-xx-generic/kernel/drivers

This is the OS kernel path where all the drivers (input / tty / Bluetooth / GPU/ PCI ..... ) will be located

SBIOS



What is Swap memory?  and What is the purpose of Swap memory?
  • Swap space (virtual memory) is a designated area on a hard drive that is used as an extension of physical memory (RAM). 
  • When the system's RAM becomes full, inactive pages are moved to the swap space, freeing up RAM for active processes
  • While swap space can help machines with a small amount of RAM, it should not be considered a replacement for more RAM.
 How do we check Swap memory in our machine?

   commands to check swap memory: free -h          or     sudo swapon --show
   the output of  free -h  
                     total        used        free      shared  buff/cache   available
Mem:           125Gi       9.0Gi       113Gi       112Mi       2.8Gi       115Gi
Swap:           93Gi          0B        93Gi
  
the output of   sudo swapon --show  
        
NAME      TYPE       SIZE USED PRIO
/dev/sda3 partition 93.1G   0B   -2

Can we increase the swap memory? Ans: Yes. 

How to increase/ resize swap memory? / How to increase Swap Space in Ubuntu 22.04 LTS Jammy?

Steps to add Swap area in Ubuntu 22.04 LTS Linux

1. Check the current Swap Space

            cmdsudo swapon -s 

            result: if there is no swap memory means it will not show anything (empty)

                        otherwise shown as below

                Filename                                Type            Size            Used            Priority

                /swapfile                               file            31457276        0               -2

2. Turn off Swap

            cmd: sudo swapoff -a                             Command output shows: Nothing 

3. Create a Swap file on Ubuntu 22.04 to increase the size

   Note: While using the given command keep one thing in mind 40G means, 40GB of space you are about to allocate for Swap       

            cmd: sudo fallocate -l 40G /swapfile        Command output shows: Nothing  

4. Change file permission

            cmd:  sudo chmod 600 /swapfile              Command output shows: Nothing  

5. Mark SWAP space and activate it

            cmd:  sudo mkswap /swapfile

                    mkswap: /swapfile: warning: wiping old swap signature.

                    Setting up swapspace version 1, size = 100 GiB (107374178304 bytes)

                    no label, UUID=0764024e-ac01-4c29-91ab-bb64f7af33a3

            cmdsudo swapon /swapfile               Command output shows: Nothing 

        Note: After activating, can you check whether the Swap space is added to your system? By using the below cmd.

          cmd: sudo swapon -s     or     free -h

6. Set Ubuntu 22.04 SWAP file as permanent

            cmd:  echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

7. Set swap usage or swappiness

            cmd: sysctl vm.swappiness                  Command output shows:  vm.swappiness = 60

         However, this change is forgotten by the system after a reboot unless the following is entered in the system file /etc/sysctl.conf:

            cmdsudo nano /etc/sysctl.conf     Command will open a file, at the end of the file add vm.swappiness = 60  then save the file with the help of the options shown there. just check again if your change is saved or not?

       8. Now reload the sysctl configuration file

            cmdsudo sysctl -p

            cmdsudo reboot

for any clarification use this link: https://linux.how2shout.com/how-to-increase-swap-space-in-ubuntu-22-04-lts-jammy/#1_Check_current_Swap_Space 

How to avoid hanging issues on our laptops/Personal computers?
 1. Delete unwanted /unnecessary files and folders 📂 in laptops /PCs 💻 

    We have to delete files & folders from 3 locations

              a. Delete files & folders present in the prefetch folder

                  press windows+r  type prefetch press Enter button ==> then try to delete all files & folders  

   b. Delete files & folders present in the temp folder

                  press windows+r  type temp press Enter button ==> then try to delete all files & folders 

   c. Delete files & folders present in the %temp% folder

                  press windows+r  type %temp%  press Enter button  ==> then try to delete all files & folders  

Dockers and containers

What is docker?

Docker is an env/tool with its own OS+ user-space (related packages & modules) that resides on a bare-metal system and uses system HW/Kernel resources to serve a different purpose.


We must understand 3 environments (Bare metal,  Docker, virtualization)

·        Bare metal is one kind of environment where we test our GPUs directly

·        Docker is one kind of environment that is separated from Bare metal.

       Virtualization is software, that makes computing environments independent of physical infrastructure. In contrast, cloud computing is a service that delivers shared computing resources (software and/or data) on demand via the Internet.

·        If you launch Docker, it has its own user space with all dependent packages and its own OS.

The beauty of the docker concept :

    Docker doesn't rely on what OS is present on the machine. It's independent.

    You can run any docker, any machine. 


      Docker is controlled by a kernel space.

·        Kernel sitting very close to the hardware.                                                 

·        If Kernel space/Firmware is broken/crashed, we can’t do anything.

·        Both Bare-metal and Docker have the packages, Except Docker does not have kernel space. Docker will use kernel space which is available on the bare metal.


Ø   sudo dmesg: dmesg contains all kernel-related information (loading /unloading, module loading firmware loading. etc. lot of information).

Ø  sudo dmesg | grep -i error if you search like this it will give kernel/firmware-related error messages 

Ø  Any kernel-related error you want to see must run sudo dmesg from the home directory,

Ø  cd /var/log/ èin this folder the dmesg log file & other kernel log files are present.

èFirmware not loaded/ kernel crashed all information, You can use the command sudo dmesg | grep -i error to see the error messages.

commands related to dockers & containers

sudo docker pull <docker_name_based_on_OS> cmd will pull the specific doker into the machine

sudo docker images  ==> cmd will list the available dockers in the present machine

sudo docker rmi  -f  docker_id ==> cmd will delete a single specific docker in the present machine

sudo docker rmi  -f  docker_id_1 docker_id_2 docker_id_3 ==> Will delete multiple dockers

sudo docker ps -a ==> cmd will list the available containers in the present machine

sudo docker rm container_id ==>cmd will delete a single specific container present in the machine

sudo docker rm container_id_1 container_id_2 container_id_3 ==> will delete multiple containers

docker system prune -a   ==> It will clear space on your device by doing the following tasks 

     This command will remove: 

            - all stopped containers

            - all networks not used by at least one container

            - all images without at least one container associated with them

            - all build cache




Friday 18 November 2022

Technical Info

 

Windows Subsystem for Linux Has Reached v1.0 Stable Release


Windows Subsystem for Linux (WSL) is a tool that lets you run a GNU/Linux environment inside a Windows system without needing a virtual machine or dual-boot.

https://news.itsfoss.com/wsl-stable-available/


Saturday 15 October 2022

Pytorch framework & Tensorflow Framework

Pytorch and Tensorflow are the two most popular deep-learning frameworks. 


Pytorch was developed by Facebook and released to the public in 2016.

Pytorch is a low-level API for NLP(natural language processing) and computer vision. it is a more powerful version of Numpy.



TensorFlow was developed by Google and released to the public in 2015. Production and research are the main uses of TensorFlow.




Friday 15 July 2022

AI ML DL

 




JenkinsThe leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying, and automating any project.



Difference between Private Key and Public Key


KeyPrivate KeyPublic Key
AlgorithmPrivate key is used for both encrypting and decrypting the sensitive data. It is shared between the sender and receiver of encrypted data.Public key is used only for the purpose of encrypting the data.
PerformanceThe private key mechanism is faster.The public key mechanism is slower.
SecrecyThe private key is kept secret and not public to anyone apart from the sender and the receiver.The public key is free to use and the private key is kept secret only.
TypeThe private key mechanism is called "symmetric" because a single key is shared between two parties.The public key mechanism is called "asymmetric" because there are two keys for different purposes.
SharingThe private key is to be shared between two parties.The public key can be used by anyone but the private key is to be shared between two parties only.
TargetsPerformance testing checks the reliability, scalability, and speed of the system.

Thursday 7 April 2022

Python if-else Interview questions

What are the three main conditional statements in Python?
Answer       if, elif, and else


. What will be the output of the following Python code?

names_1 = ["Narendra", "Boyina", "raj", "Mahalakshmi"]

if  'Raj' in names_1:

print(1)

else:

print(2)

a) None

b) 1

c) 2

d) Error


Answer: c

Explanation: Python is case sensitive, "if" condition failed because "Raj" is not available in that list, "raj" is available, so else block statement is executed.

========================================================================

A company decided to give a bonus of 5% to the employee if his/her year of service is more than 5 years.
Ask users for their salary and year of service and print the net bonus amount.

Answer:


salary = int(input("Enter salary"))

yos = int(input("Enter year of service"))

if yos>5:

  print "Bonus is",.05*salary

else:

  print "No bonus"

========================================================================

 Accept the kilometers covered  for the rented car and calculate the bill according to the following criteria:

First 10 Km              Rs11/km

Next 90Km               Rs 10/km

After that               Rs9/km

Answer
.

kmc = int(input("Enter the kilometer covered"))

if kmc <=10 :

    amt = kmc * 11

elif kmc > 10 and kmc <= 100:

    amt = 110 + (kmc - 10)*10

elif kmc > 100:

    amt = 1010 + (kmc - 100)*9

print("Total amount to pay is ", amt)

========================================================================



========================================================================

Write a program to calculate the electricity bill (accept the number of units from user) according to the following criteria :

             Unit                                                     Price  

First 100 units                                               no charge

Next 100 units                                              Rs 5 per unit

After 200 units                                             Rs 10 per unit

(For example, if the input unit is 350 then the total bill amount is Rs2000)


logic.

amt=0

numer_units=int(input("Enter number of electric unit"))

if numer_units<=100:

     amt=0

if numer_units>100 and numer_units<=200:

     amt=(numer_units-100)*5

if numer_units>200:

     amt=500+(numer_units-200)*10

print("Amount to pay :",amt)

========================================================================

Accept any city from the user and display a monument of that city.

  City                                 Monument

  Delhi                               Red Fort

  Agra                                Taj Mahal

  Jaipur                              Jal Mahal


 Answer

 

city = input("Enter name of the city")

if city.lower()=="delhi":

    print("Monument name is : Red Fort")

elif city.lower()=="agra":

    print("Monument name is : Taj Mahal")

elif city.lower()=="jaipur":

    print("Monument name is : Jal Mahal")

else:

print("Enter correct name of city")


========================================================================

Write a program to find the largest number out of three, excepted by the user.

 Answer


num1 = int(input("Enter first number"))
num2 = int(input("Enter second number"))
num3 = int(input("Enter third number"))
if num1 > num2 and num1 > num3:
      print("Greatest number is ", num1)
if num2 > num1 and num2 > num3:
      print("Greatest number is ", num2)
if num3 > num2 and num3 > num1:
     print("Greatest number is ", num3)
print("Enter correct name of city")

========================================================================

Accept the following from the user and calculate the percentage of class attended:

a.     Total number of working days

b.     Total number of absent days 

After calculating the percentage show that, If the percentage is less than 75 then the student will not be able to sit in the exam.

 Answer

 

nd = int(input("Enter total number of working days"))

na = int(input("Enter number of days  absent"))

per=(nd-na)/nd*100

print("Your attendance is ",per)

if per <75 :

     print("You are not eligible for exams")

else:

     print("You are eligible for writing exam")

========================================================================


                                Request: Please provide your valuable comments

Python Comprehensions Interview questions - Multiple choice

 1. Suppose list1 = [0.5 * x for x in range(0, 4)], list1 is:

a) [0, 1, 2, 3]

b) [0, 1, 2, 3, 4]

c) [0.0, 0.5, 1.0, 1.5]

d) [0.0, 0.5, 1.0, 1.5, 2.0]


Answer: c

Explanation: Execute in the shell to verify.


2. What will be the output of the following Python code?

names_1 = ["Narendra", "Bhagyasree", "Raj", "Mahalakshmi"]

names_2 = [name.lower() for name in names_1]

 print(names_2[2][0])

a) None

b) R

c) r

d) b


Answer: c

Explanation: List Comprehension is a shorthand for creating new lists.


3. What will be the output of the following Python code?

>>>m = [[x, x + 1, x + 2] for x in range(0, 3)]

a) [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

b) [[0, 1, 2], [1, 2, 3], [2, 3, 4]]

c) [1, 2, 3, 4, 5, 6, 7, 8, 9]

d) [0, 1, 2, 1, 2, 3, 2, 3, 4]


Answer: b

Explanation: Execute in the shell to verify.


4. How many elements are in m?

m = [[x, y] for x in range(0, 4) for y in range(0, 4)]

a) 8

b) 12

c) 16

d) 32


Answer: c

Explanation: Execute in the shell to verify.

 

5. What will be the output of the following Python code?

a=[1,2,3,4]

b=[sum(a[0:x+1]) for x in range(0,len(a))]

print(b)

a) 10

b) [1,3,5,7] 

c) 4

d) [1,3,6,10]


Answer: d

Explanation: The above code returns the cumulative sum of elements in a list


6. What will be the output of the following Python code?

>>>t = (1, 2, 4, 3, 8, 9)

>>>[t[i] for i in range(0, len(t), 2)]

a) Error

b) [1, 2, 4, 3, 8, 9]

c) [1, 4, 8]

d) (1, 4, 8)


Answer: c

Explanation: Execute in the shell to verify.


7. What will be the output of the following Python code?

a={i: i*i for i in range(6)}

print(a)

a) Dictionary comprehension doesn’t exist

b) {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6:36}

c) {0: 0, 1: 1, 4: 4, 9: 9, 16: 16, 25: 25}

d) {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}


Answer: d

Explanation: Dictionary comprehension is implemented in the above piece of code.


8. What will be the output of the following Python code?

 a={i: 'A' + str(i) for i in range(5)}

print(a)  

a) An exception is thrown

b) {0: ‘A0’, 1: ‘A1’, 2: ‘A2’, 3: ‘A3’, 4: ‘A4’}

c) {0: ‘A’, 1: ‘A’, 2: ‘A’, 3: ‘A’, 4: ‘A’}

d) {0: ‘0’, 1: ‘1’, 2: ‘2’, 3: ‘3’, 4: ‘4’}


Answer: b 

Explanation: Dictionary comprehension and string concatenation is implemented in the above piece of code.


 What will be the output of the following Python code?

a="hello"

b=list( (x.upper(), len(x))  for x in a)

print(b)

a) [(‘H’, 1), (‘E’, 1), (‘L’, 1), (‘L’, 1), (‘O’, 1)]

b) [(‘HELLO’, 5)]

c) [(‘H’, 5), (‘E’, 5), (‘L’, 5), (‘L’, 5), (‘O’, 5)]

d) Syntax error


Answer: a

Explanation: Variable x iterates over each letter in the string hence the length of each letter is 1.


Python Functions Interview questions

1. What will be the output of the following Python code?

myList = [1, 2, 3, 4, 5, 6]

for i in range(1, 6):

myList[i - 1] = myList[i]

for i in range(0, 6): 

print(myList[i], end = " ")

a) 2 3 4 5 6 1

b) 6 1 2 3 4 5

c) 2 3 4 5 6 6

d) 1 1 2 3 4 5


Answer: c

Explanation: Execute in the shell to verify.


2. What will be the output of the following Python code?

def narendra(values):

values[0] = 44


v = [1, 2, 3]

narendra(v)

print(v)

a) [1, 44]

b) [1, 2, 3, 44]

c) [44, 2, 3]

d) [1, 2, 3]


Answer: c

Explanation: Execute in the shell to verify.


3. What will be the output of the following Python code?

def narendra(i, values = []):

values.append(i)

return values

 

narendra(1)

narendra(2)

v = narendra(3)

print(v)

a) [1] [2] [3]

b) [1] [1, 2] [1, 2, 3]

c) [1, 2, 3]

d) 1 2 3


Answer: c

Explanation: Execute in the shell to verify


4. What will be the output of the following Python code?

def addItem(listParam):

listParam += [1]

 

mylist = [1, 2, 3, 4]

addItem(mylist)

print(len(mylist))

a) 1

b) 4

c) 5

d) 8


Answer: c

Explanation: + will append the element to the list.


5. What will be the output of the following Python code?

def increment_items(L, increment):

i = 0

while i < len(L):

L[i] = L[i] + increment

i = i + 1

 

values = [1, 2, 3]

print(increment_items(values, 2))

print(values)

a)    None

           [3, 4, 5]

b)    None

           [1, 2, 3]

c)    [3, 4, 5]

           [1, 2, 3]

d)    [3, 4, 5]

           None


Answer: a

Explanation: increment_items() function does not have a return keyword, so by default if any function does not have a return keyword, then that function will return None


6. What will be the output of the following Python code?

def example(L):

i = 0

result = []

while i < len(L):

result.append(L[i])

i = i + 3

return result

a) Return a list containing every third item from L starting at index 0

b) Return an empty list

c) Return a list containing every third index from L starting at index 0

d) Return a list containing the items from L starting from index 0, omitting every third item


Answer: a

Explanation: Run the code to get a better understanding of many arguments.


7. What will be the output of the following Python code?

     def maha(list):
            v = list[0]
        for e in list: # iterate inner list
        if v < e:
        v = e
        return v

        values = [[3, 4, 5, 1], [33, 6, 1, 2]]
        for row in values:
        print(maha(row), end=" ")
         a) 3 33

        b) 1 1

        c) 5 6

        d) 5 33


Answer: d

Explanation: Execute in the shell to verify.


8. What will be the output of the following Python code?

    def maha(m):
    v = m[0][0]
for row in m:
for element in row:
if v < element:
v = element
print(v)

    maha(data[0])

        a) 1

b) 2

c) 4

d) 5


Answer: c

Explanation: Execute in the shell to verify.


9.  What will be the output of the following Python code?

def unpack(a,b,c,d):

print(a+d)

x = [1,2,3,4]

unpack(*x)

a) Error

b) [1,4]

c) [5]

d) 5


Answer: d

Explanation: unpack(*x) unpacks the list into the separate variables. Now, a=1 and d=4. Thus 5 gets printed.


10. What will be the output of the following Python code?

def change(var, lst):

var = 1

lst[0] = 44

k = 3

a = [1, 2, 3]

change(k, a)

print(k)

print(a)


a) 3

[44, 2, 3]

b) 1

[1,2,3]

c) 3

[1,2,3]

d) 1

[44,2,3]


Answer: a

Explanation: A list is mutable, hence its value changes after the function call. However, the integer isn’t mutable. Thus its value doesn’t change


11. What will be the output of the following Python code snippet?

total={}

def insert(items):

if items in total:

total[items] += 1

else:

total[items] = 1

insert('Apple')

insert('Ball')

insert('Apple')

print (len(total))

a) 3

b) 1

c) 2

d) 0


Answer: c

Explanation: The insert() function counts the number of occurrences of the item being inserted into the dictionary. 

There are only 2 keys present since the key ‘Apple’ is repeated. Thus, the length of the dictionary is 2.


12. What will be the output of the following Python code?

a = [5,5,6,7,7,7]

b = set(a)

def test(lst):

if lst in b:

return 1

else:

return 0

for i in  filter(test, a):

print(i,end=" ")

a) 5 5 6

b) 5 6 7

c) 5 5 6 7 7 7

d) 5 6 7 7 7


Answer: c

Explanation: The filter function will return all the values from the list a which are true when passed to the function test.